(0) Obligation:
JBC Problem based on JBC Program:
Manifest-Version: 1.0
Created-By: 1.6.0_20 (Sun Microsystems Inc.)
Main-Class: FlattenRTA
public class FlattenRTA {
public static IntList flatten(TreeList list) {
TreeList cur = list;
IntList result = null;
while (cur != null) {
Tree tree = cur.value;
if (tree != null) {
IntList oldIntList = result;
result = new IntList();
result.value = tree.value;
result.next = oldIntList;
TreeList oldCur = cur;
cur = new TreeList();
cur.value = tree.left;
cur.next = oldCur;
oldCur.value = tree.right;
} else cur = cur.next;
}
if (cur != list) {}
return result;
}
public static void main(String[] args) {
Random.args = args;
int listLength = Random.random();
TreeList list = null;
for (int i = listLength; i > 0; i--) {
Tree tree = Tree.createTree();
list = new TreeList(tree, list);
}
flatten(list);
}
}
public class IntList {
int value;
IntList next;
public IntList(int value, IntList next) {
this.value = value;
this.next = next;
}
public IntList() {
}
public static IntList createList() {
IntList result = null;
int length = Random.random();
while (length > 0) {
result = new IntList(Random.random(), result);
length--;
}
return result;
}
}
public class Random {
static String[] args;
static int index = 0;
public static int random() {
String string = args[index];
index++;
return string.length();
}
}
public class Tree {
Tree left;
Tree right;
int value;
public Tree(Tree l, Tree r) {
this.left = l;
this.right = r;
}
public Tree() {
}
public static Tree createNode() {
Tree result = new Tree();
result.value = Random.random();
return result;
}
public static Tree createTree() {
int counter = Random.random();
if (counter == 0) {
return null;
}
Tree result = createNode();
Tree t = result;
while (counter > 0) {
int branch = Random.random();
if (branch > 0) {
if (t.left == null) {
t.left = createNode();
t = result;
} else {
t = t.left;
}
} else {
if (t.right == null) {
t.right = createNode();
t = result;
} else {
t = t.right;
}
}
counter--;
}
return result;
}
public static void main(String[] args) {
Random.args = args;
createTree();
}
}
public class TreeList {
Tree value;
TreeList next;
public TreeList(Tree value, TreeList next) {
this.value = value;
this.next = next;
}
public TreeList() {
}
}
(1) JBC2FIG (SOUND transformation)
Constructed FIGraph.
(2) Obligation:
FIGraph based on JBC Program:
FlattenRTA.main([Ljava/lang/String;)V: Graph of 178 nodes with 1 SCC.
FlattenRTA.flatten(LTreeList;)LIntList;: Graph of 124 nodes with 1 SCC.
Tree.createTree()LTree;: Graph of 400 nodes with 1 SCC.
Tree.createNode()LTree;: Graph of 104 nodes with 0 SCCs.
(3) FIGtoITRSProof (SOUND transformation)
Transformed FIGraph SCCs to IDPs. Logs:
Log for SCC 0: Generated 161 rules for P and 237 rules for R.
Combined rules. Obtained 23 rules for P and 37 rules for R.
Filtered ground terms:
Tree(x1, x2, x3) → Tree(x2, x3)
22017_0_random_ArrayAccess(x1, x2, x3) → 22017_0_random_ArrayAccess(x2, x3)
Cond_25321_1_createTree_InvokeMethod(x1, x2, x3, x4, x5) → Cond_25321_1_createTree_InvokeMethod(x1, x3, x4, x5)
2619_0_createNode_Return(x1, x2) → 2619_0_createNode_Return
25321_0_createNode_New(x1) → 25321_0_createNode_New
22181_0_random_IntArithmetic(x1, x2, x3, x4) → 22181_0_random_IntArithmetic(x2, x3)
Cond_25669_1_createTree_InvokeMethod(x1, x2, x3, x4, x5) → Cond_25669_1_createTree_InvokeMethod(x1, x3, x4, x5)
25669_0_createNode_New(x1) → 25669_0_createNode_New
Cond_25288_1_createTree_InvokeMethod(x1, x2, x3, x4, x5) → Cond_25288_1_createTree_InvokeMethod(x1, x3)
25288_1_createTree_InvokeMethod(x1, x2, x3, x4) → 25288_1_createTree_InvokeMethod(x1, x2)
25288_0_createNode_New(x1) → 25288_0_createNode_New
Cond_22181_1_createTree_InvokeMethod9(x1, x2, x3, x4, x5) → Cond_22181_1_createTree_InvokeMethod9(x1, x2, x3)
Cond_25942_1_createTree_InvokeMethod(x1, x2, x3, x4, x5) → Cond_25942_1_createTree_InvokeMethod(x1, x3, x4, x5)
25942_0_createNode_New(x1) → 25942_0_createNode_New
Cond_25205_1_createTree_InvokeMethod(x1, x2, x3, x4, x5) → Cond_25205_1_createTree_InvokeMethod(x1, x3, x4, x5)
25205_0_createNode_New(x1) → 25205_0_createNode_New
Cond_25512_1_createTree_InvokeMethod(x1, x2, x3, x4, x5) → Cond_25512_1_createTree_InvokeMethod(x1, x3, x4, x5)
25512_0_createNode_New(x1) → 25512_0_createNode_New
Cond_25177_1_createTree_InvokeMethod(x1, x2, x3, x4, x5) → Cond_25177_1_createTree_InvokeMethod(x1, x3)
25177_1_createTree_InvokeMethod(x1, x2, x3, x4) → 25177_1_createTree_InvokeMethod(x1, x2)
25177_0_createNode_New(x1) → 25177_0_createNode_New
Cond_22181_1_createTree_InvokeMethod2(x1, x2, x3, x4, x5) → Cond_22181_1_createTree_InvokeMethod2(x1, x2, x3)
Cond_25776_1_createTree_InvokeMethod(x1, x2, x3, x4, x5) → Cond_25776_1_createTree_InvokeMethod(x1, x3, x4, x5)
25776_0_createNode_New(x1) → 25776_0_createNode_New
2773_0_createNode_InvokeMethod(x1, x2, x3, x4) → 2773_0_createNode_InvokeMethod
java.lang.ArrayIndexOutOfBoundsException(x1) → java.lang.ArrayIndexOutOfBoundsException
java.lang.IndexOutOfBoundsException(x1) → java.lang.IndexOutOfBoundsException
Cond_2282_1_createNode_InvokeMethod2(x1, x2, x3, x4) → Cond_2282_1_createNode_InvokeMethod2(x1, x2)
2282_0_random_ArrayAccess(x1, x2, x3) → 2282_0_random_ArrayAccess(x2, x3)
2282_1_createNode_InvokeMethod(x1, x2, x3) → 2282_1_createNode_InvokeMethod(x1)
Cond_2373_1_createNode_InvokeMethod1(x1, x2, x3, x4) → Cond_2373_1_createNode_InvokeMethod1(x1, x2)
2373_0_random_IntArithmetic(x1, x2, x3, x4) → 2373_0_random_IntArithmetic(x2, x3)
2373_1_createNode_InvokeMethod(x1, x2, x3) → 2373_1_createNode_InvokeMethod(x1)
2933_0_createNode_InvokeMethod(x1, x2, x3, x4) → 2933_0_createNode_InvokeMethod
java.lang.NullPointerException(x1) → java.lang.NullPointerException
Cond_2373_1_createNode_InvokeMethod(x1, x2, x3, x4) → Cond_2373_1_createNode_InvokeMethod(x1, x2)
Cond_2282_1_createNode_InvokeMethod1(x1, x2, x3, x4) → Cond_2282_1_createNode_InvokeMethod1(x1, x2)
2813_0_createNode_InvokeMethod(x1, x2, x3, x4) → 2813_0_createNode_InvokeMethod
Cond_2282_1_createNode_InvokeMethod(x1, x2, x3, x4) → Cond_2282_1_createNode_InvokeMethod(x1, x2)
25727_0_createTree_InvokeMethod(x1, x2, x3, x4, x5) → 25727_0_createTree_InvokeMethod(x2, x3, x4, x5)
26060_0_createTree_InvokeMethod(x1, x2, x3, x4, x5) → 26060_0_createTree_InvokeMethod(x2, x3, x4, x5)
25664_0_createTree_InvokeMethod(x1, x2, x3, x4, x5) → 25664_0_createTree_InvokeMethod(x2, x3)
26307_0_createTree_InvokeMethod(x1, x2, x3, x4, x5) → 26307_0_createTree_InvokeMethod(x2, x3, x4, x5)
25572_0_createTree_InvokeMethod(x1, x2, x3, x4, x5) → 25572_0_createTree_InvokeMethod(x2, x3, x4, x5)
25886_0_createTree_InvokeMethod(x1, x2, x3, x4, x5) → 25886_0_createTree_InvokeMethod(x2, x3, x4, x5)
25508_0_createTree_InvokeMethod(x1, x2, x3, x4, x5) → 25508_0_createTree_InvokeMethod(x2, x3)
26213_0_createTree_InvokeMethod(x1, x2, x3, x4, x5) → 26213_0_createTree_InvokeMethod(x2, x3, x4, x5)
25328_0_createNode_InvokeMethod(x1, x2, x3, x4) → 25328_0_createNode_InvokeMethod
25676_0_createNode_InvokeMethod(x1, x2, x3, x4) → 25676_0_createNode_InvokeMethod
25294_0_createNode_InvokeMethod(x1, x2, x3, x4) → 25294_0_createNode_InvokeMethod
25963_0_createNode_InvokeMethod(x1, x2, x3, x4) → 25963_0_createNode_InvokeMethod
25211_0_createNode_InvokeMethod(x1, x2, x3, x4) → 25211_0_createNode_InvokeMethod
25519_0_createNode_InvokeMethod(x1, x2, x3, x4) → 25519_0_createNode_InvokeMethod
25183_0_createNode_InvokeMethod(x1, x2, x3, x4) → 25183_0_createNode_InvokeMethod
25795_0_createNode_InvokeMethod(x1, x2, x3, x4) → 25795_0_createNode_InvokeMethod
Filtered all non-integer terms:
22017_1_createTree_InvokeMethod(x1, x2, x3, x4) → 22017_1_createTree_InvokeMethod(x1, x2)
Cond_22017_1_createTree_InvokeMethod(x1, x2, x3, x4, x5) → Cond_22017_1_createTree_InvokeMethod(x1, x2, x3)
22181_1_createTree_InvokeMethod(x1, x2, x3, x4) → 22181_1_createTree_InvokeMethod(x1, x2)
22181_0_random_IntArithmetic(x1, x2) → 22181_0_random_IntArithmetic(x2)
Tree(x1, x2) → Tree
Cond_22181_1_createTree_InvokeMethod(x1, x2, x3, x4, x5) → Cond_22181_1_createTree_InvokeMethod(x1, x2, x3)
Cond_22181_1_createTree_InvokeMethod1(x1, x2, x3, x4, x5) → Cond_22181_1_createTree_InvokeMethod1(x1, x2, x3)
25776_1_createTree_InvokeMethod(x1, x2, x3, x4) → 25776_1_createTree_InvokeMethod(x1, x2)
Cond_25776_1_createTree_InvokeMethod(x1, x2, x3, x4) → Cond_25776_1_createTree_InvokeMethod(x1, x2)
Cond_22181_1_createTree_InvokeMethod3(x1, x2, x3, x4, x5) → Cond_22181_1_createTree_InvokeMethod3(x1, x2, x3)
Cond_22181_1_createTree_InvokeMethod4(x1, x2, x3, x4, x5) → Cond_22181_1_createTree_InvokeMethod4(x1, x2, x3)
25512_1_createTree_InvokeMethod(x1, x2, x3, x4) → 25512_1_createTree_InvokeMethod(x1, x2)
Cond_25512_1_createTree_InvokeMethod(x1, x2, x3, x4) → Cond_25512_1_createTree_InvokeMethod(x1, x2)
Cond_22181_1_createTree_InvokeMethod5(x1, x2, x3, x4, x5) → Cond_22181_1_createTree_InvokeMethod5(x1, x2, x3)
Cond_22181_1_createTree_InvokeMethod6(x1, x2, x3, x4, x5) → Cond_22181_1_createTree_InvokeMethod6(x1, x2, x3)
25205_1_createTree_InvokeMethod(x1, x2, x3, x4) → 25205_1_createTree_InvokeMethod(x1, x2)
Cond_25205_1_createTree_InvokeMethod(x1, x2, x3, x4) → Cond_25205_1_createTree_InvokeMethod(x1, x2)
Cond_22181_1_createTree_InvokeMethod7(x1, x2, x3, x4, x5) → Cond_22181_1_createTree_InvokeMethod7(x1, x2, x3)
Cond_22181_1_createTree_InvokeMethod8(x1, x2, x3, x4, x5) → Cond_22181_1_createTree_InvokeMethod8(x1, x2, x3)
25942_1_createTree_InvokeMethod(x1, x2, x3, x4) → 25942_1_createTree_InvokeMethod(x1, x2)
Cond_25942_1_createTree_InvokeMethod(x1, x2, x3, x4) → Cond_25942_1_createTree_InvokeMethod(x1, x2)
Cond_22181_1_createTree_InvokeMethod10(x1, x2, x3, x4, x5) → Cond_22181_1_createTree_InvokeMethod10(x1, x2, x3)
Cond_22181_1_createTree_InvokeMethod11(x1, x2, x3, x4, x5) → Cond_22181_1_createTree_InvokeMethod11(x1, x2, x3)
25669_1_createTree_InvokeMethod(x1, x2, x3, x4) → 25669_1_createTree_InvokeMethod(x1, x2)
Cond_25669_1_createTree_InvokeMethod(x1, x2, x3, x4) → Cond_25669_1_createTree_InvokeMethod(x1, x2)
Cond_22181_1_createTree_InvokeMethod12(x1, x2, x3, x4, x5) → Cond_22181_1_createTree_InvokeMethod12(x1, x2, x3)
Cond_22181_1_createTree_InvokeMethod13(x1, x2, x3, x4, x5) → Cond_22181_1_createTree_InvokeMethod13(x1, x2, x3)
25321_1_createTree_InvokeMethod(x1, x2, x3, x4) → 25321_1_createTree_InvokeMethod(x1, x2)
Cond_25321_1_createTree_InvokeMethod(x1, x2, x3, x4) → Cond_25321_1_createTree_InvokeMethod(x1, x2)
26213_0_createTree_InvokeMethod(x1, x2, x3, x4) → 26213_0_createTree_InvokeMethod(x2)
25508_0_createTree_InvokeMethod(x1, x2) → 25508_0_createTree_InvokeMethod(x2)
25886_0_createTree_InvokeMethod(x1, x2, x3, x4) → 25886_0_createTree_InvokeMethod(x2)
25572_0_createTree_InvokeMethod(x1, x2, x3, x4) → 25572_0_createTree_InvokeMethod(x2)
26307_0_createTree_InvokeMethod(x1, x2, x3, x4) → 26307_0_createTree_InvokeMethod(x2)
25664_0_createTree_InvokeMethod(x1, x2) → 25664_0_createTree_InvokeMethod(x2)
26060_0_createTree_InvokeMethod(x1, x2, x3, x4) → 26060_0_createTree_InvokeMethod(x2)
25727_0_createTree_InvokeMethod(x1, x2, x3, x4) → 25727_0_createTree_InvokeMethod(x2)
2373_0_random_IntArithmetic(x1, x2) → 2373_0_random_IntArithmetic(x2)
Filtered all free variables:
22181_1_createTree_InvokeMethod(x1, x2) → 22181_1_createTree_InvokeMethod(x2)
Cond_22181_1_createTree_InvokeMethod(x1, x2, x3) → Cond_22181_1_createTree_InvokeMethod(x1, x3)
22017_1_createTree_InvokeMethod(x1, x2) → 22017_1_createTree_InvokeMethod(x2)
Cond_22181_1_createTree_InvokeMethod1(x1, x2, x3) → Cond_22181_1_createTree_InvokeMethod1(x1, x3)
Cond_22181_1_createTree_InvokeMethod2(x1, x2, x3) → Cond_22181_1_createTree_InvokeMethod2(x1, x3)
Cond_22181_1_createTree_InvokeMethod3(x1, x2, x3) → Cond_22181_1_createTree_InvokeMethod3(x1, x3)
Cond_22181_1_createTree_InvokeMethod4(x1, x2, x3) → Cond_22181_1_createTree_InvokeMethod4(x1, x3)
Cond_22181_1_createTree_InvokeMethod5(x1, x2, x3) → Cond_22181_1_createTree_InvokeMethod5(x1, x3)
Cond_22181_1_createTree_InvokeMethod6(x1, x2, x3) → Cond_22181_1_createTree_InvokeMethod6(x1, x3)
Cond_22181_1_createTree_InvokeMethod7(x1, x2, x3) → Cond_22181_1_createTree_InvokeMethod7(x1, x3)
Cond_22181_1_createTree_InvokeMethod8(x1, x2, x3) → Cond_22181_1_createTree_InvokeMethod8(x1, x3)
Cond_22181_1_createTree_InvokeMethod9(x1, x2, x3) → Cond_22181_1_createTree_InvokeMethod9(x1, x3)
Cond_22181_1_createTree_InvokeMethod10(x1, x2, x3) → Cond_22181_1_createTree_InvokeMethod10(x1, x3)
Cond_22181_1_createTree_InvokeMethod11(x1, x2, x3) → Cond_22181_1_createTree_InvokeMethod11(x1, x3)
Cond_22181_1_createTree_InvokeMethod12(x1, x2, x3) → Cond_22181_1_createTree_InvokeMethod12(x1, x3)
Cond_22181_1_createTree_InvokeMethod13(x1, x2, x3) → Cond_22181_1_createTree_InvokeMethod13(x1, x3)
Cond_22017_1_createTree_InvokeMethod(x1, x2, x3) → Cond_22017_1_createTree_InvokeMethod(x1, x3)
2282_0_random_ArrayAccess(x1, x2) → 2282_0_random_ArrayAccess
2282_1_createNode_InvokeMethod(x1) → 2282_1_createNode_InvokeMethod
2373_0_random_IntArithmetic(x1) → 2373_0_random_IntArithmetic
Filtered ground terms:
Cond_2282_1_createNode_InvokeMethod2(x1, x2) → Cond_2282_1_createNode_InvokeMethod2(x1)
Cond_2373_1_createNode_InvokeMethod1(x1, x2) → Cond_2373_1_createNode_InvokeMethod1(x1)
2373_1_createNode_InvokeMethod(x1) → 2373_1_createNode_InvokeMethod
Cond_2373_1_createNode_InvokeMethod(x1, x2) → Cond_2373_1_createNode_InvokeMethod(x1)
Cond_2282_1_createNode_InvokeMethod1(x1, x2) → Cond_2282_1_createNode_InvokeMethod1(x1)
Cond_2282_1_createNode_InvokeMethod(x1, x2) → Cond_2282_1_createNode_InvokeMethod(x1)
Combined rules. Obtained 17 rules for P and 36 rules for R.
Finished conversion. Obtained 17 rules for P and 36 rules for R. System has predefined symbols.
Log for SCC 1: Generated 108 rules for P and 10 rules for R.
Combined rules. Obtained 4 rules for P and 2 rules for R.
Filtered ground terms:
4679_0_flatten_NULL(x1, x2, x3, x4, x5) → 4679_0_flatten_NULL(x2, x3, x4, x5)
TreeList(x1, x2, x3) → TreeList(x2, x3)
IntList(x1) → IntList
Tree(x1, x2, x3, x4) → Tree(x2, x3, x4)
4985_0_flatten_Return(x1, x2) → 4985_0_flatten_Return(x2)
4983_0_flatten_Return(x1, x2) → 4983_0_flatten_Return(x2)
Filtered duplicate args:
4679_0_flatten_NULL(x1, x2, x3, x4) → 4679_0_flatten_NULL(x1, x3, x4)
Filtered unneeded arguments:
4679_0_flatten_NULL(x1, x2, x3) → 4679_0_flatten_NULL(x1, x3)
Filtered all free variables:
4983_0_flatten_Return(x1) → 4983_0_flatten_Return
4985_0_flatten_Return(x1) → 4985_0_flatten_Return
Finished conversion. Obtained 4 rules for P and 2 rules for R. System has no predefined symbols.
Log for SCC 2: Generated 47 rules for P and 691 rules for R.
Combined rules. Obtained 2 rules for P and 93 rules for R.
Filtered ground terms:
TreeList(x1) → TreeList
7513_0_createTree_InvokeMethod(x1) → 7513_0_createTree_InvokeMethod
Cond_7513_1_main_InvokeMethod1(x1, x2, x3, x4) → Cond_7513_1_main_InvokeMethod1(x1, x3, x4)
Tree(x1) → Tree
21908_0_createTree_Return(x1, x2) → 21908_0_createTree_Return
Cond_7513_1_main_InvokeMethod(x1, x2, x3, x4) → Cond_7513_1_main_InvokeMethod(x1, x3, x4)
1974_0_createTree_Return(x1, x2, x3) → 1974_0_createTree_Return
21887_0_createTree_LE(x1, x2, x3, x4, x5) → 21887_0_createTree_LE(x2, x4, x5)
Cond_25446_0_createTree_FieldAccess(x1, x2, x3, x4, x5) → Cond_25446_0_createTree_FieldAccess(x1, x3)
25446_0_createTree_FieldAccess(x1, x2, x3, x4) → 25446_0_createTree_FieldAccess(x2)
Cond_25511_0_createTree_Store(x1, x2, x3, x4, x5) → Cond_25511_0_createTree_Store(x1, x3, x5)
25511_0_createTree_Store(x1, x2, x3, x4) → 25511_0_createTree_Store(x2, x4)
Cond_25605_0_createTree_FieldAccess(x1, x2, x3, x4, x5) → Cond_25605_0_createTree_FieldAccess(x1, x3)
25605_0_createTree_FieldAccess(x1, x2, x3, x4) → 25605_0_createTree_FieldAccess(x2)
Cond_25668_0_createTree_Store(x1, x2, x3, x4, x5) → Cond_25668_0_createTree_Store(x1, x3, x5)
25668_0_createTree_Store(x1, x2, x3, x4) → 25668_0_createTree_Store(x2, x4)
2085_0_createTree_InvokeMethod(x1, x2) → 2085_0_createTree_InvokeMethod
java.lang.ArrayIndexOutOfBoundsException(x1) → java.lang.ArrayIndexOutOfBoundsException
java.lang.IndexOutOfBoundsException(x1) → java.lang.IndexOutOfBoundsException
1569_0_random_ArrayAccess(x1, x2, x3) → 1569_0_random_ArrayAccess(x2, x3)
24353_0_createTree_InvokeMethod(x1, x2, x3, x4, x5) → 24353_0_createTree_InvokeMethod(x3, x5)
Cond_21978_1_createTree_InvokeMethod(x1, x2, x3, x4, x5) → Cond_21978_1_createTree_InvokeMethod(x1, x2, x3, x5)
21978_0_random_ArrayAccess(x1, x2, x3) → 21978_0_random_ArrayAccess(x2, x3)
21978_1_createTree_InvokeMethod(x1, x2, x3, x4) → 21978_1_createTree_InvokeMethod(x1, x2, x4)
26213_0_createTree_InvokeMethod(x1, x2, x3, x4, x5) → 26213_0_createTree_InvokeMethod(x2, x3)
java.lang.NullPointerException(x1) → java.lang.NullPointerException
25776_1_createTree_InvokeMethod(x1, x2, x3, x4) → 25776_1_createTree_InvokeMethod(x1, x2)
2933_0_createNode_InvokeMethod(x1, x2, x3, x4) → 2933_0_createNode_InvokeMethod
2813_0_createNode_InvokeMethod(x1, x2, x3, x4) → 2813_0_createNode_InvokeMethod
Cond_25776_1_createTree_InvokeMethod(x1, x2, x3, x4, x5) → Cond_25776_1_createTree_InvokeMethod(x1, x3)
2619_0_createNode_Return(x1, x2) → 2619_0_createNode_Return
2282_0_random_ArrayAccess(x1, x2, x3) → 2282_0_random_ArrayAccess(x2, x3)
2282_1_createNode_InvokeMethod(x1, x2, x3) → 2282_1_createNode_InvokeMethod(x1)
23403_0_createTree_LE(x1, x2, x3, x4, x5) → 23403_0_createTree_LE(x2, x4, x5)
25795_0_createNode_InvokeMethod(x1, x2, x3, x4) → 25795_0_createNode_InvokeMethod
Cond_25177_1_createTree_InvokeMethod(x1, x2, x3, x4, x5) → Cond_25177_1_createTree_InvokeMethod(x1, x3)
25177_1_createTree_InvokeMethod(x1, x2, x3, x4) → 25177_1_createTree_InvokeMethod(x1, x2)
25508_0_createTree_InvokeMethod(x1, x2, x3, x4, x5) → 25508_0_createTree_InvokeMethod(x2, x3)
25183_0_createNode_InvokeMethod(x1, x2, x3, x4) → 25183_0_createNode_InvokeMethod
Cond_25512_1_createTree_InvokeMethod(x1, x2, x3, x4, x5) → Cond_25512_1_createTree_InvokeMethod(x1, x3)
25512_1_createTree_InvokeMethod(x1, x2, x3, x4) → 25512_1_createTree_InvokeMethod(x1, x2)
25886_0_createTree_InvokeMethod(x1, x2, x3, x4, x5) → 25886_0_createTree_InvokeMethod(x2, x3)
25519_0_createNode_InvokeMethod(x1, x2, x3, x4) → 25519_0_createNode_InvokeMethod
Cond_23403_0_createTree_LE11(x1, x2, x3, x4, x5, x6) → Cond_23403_0_createTree_LE11(x1, x3)
Cond_25205_1_createTree_InvokeMethod(x1, x2, x3, x4, x5) → Cond_25205_1_createTree_InvokeMethod(x1, x3)
25205_1_createTree_InvokeMethod(x1, x2, x3, x4) → 25205_1_createTree_InvokeMethod(x1, x2)
25572_0_createTree_InvokeMethod(x1, x2, x3, x4, x5) → 25572_0_createTree_InvokeMethod(x2, x3)
25211_0_createNode_InvokeMethod(x1, x2, x3, x4) → 25211_0_createNode_InvokeMethod
26307_0_createTree_InvokeMethod(x1, x2, x3, x4, x5) → 26307_0_createTree_InvokeMethod(x2, x3)
25942_1_createTree_InvokeMethod(x1, x2, x3, x4) → 25942_1_createTree_InvokeMethod(x1, x2)
Cond_25942_1_createTree_InvokeMethod(x1, x2, x3, x4, x5) → Cond_25942_1_createTree_InvokeMethod(x1, x3)
Cond_23403_0_createTree_LE10(x1, x2, x3, x4, x5, x6) → Cond_23403_0_createTree_LE10(x1, x3, x6)
25963_0_createNode_InvokeMethod(x1, x2, x3, x4) → 25963_0_createNode_InvokeMethod
Cond_23403_0_createTree_LE9(x1, x2, x3, x4, x5, x6) → Cond_23403_0_createTree_LE9(x1, x3, x6)
Cond_23403_0_createTree_LE8(x1, x2, x3, x4, x5, x6) → Cond_23403_0_createTree_LE8(x1, x3, x6)
Cond_25288_1_createTree_InvokeMethod(x1, x2, x3, x4, x5) → Cond_25288_1_createTree_InvokeMethod(x1, x3)
25288_1_createTree_InvokeMethod(x1, x2, x3, x4) → 25288_1_createTree_InvokeMethod(x1, x2)
25664_0_createTree_InvokeMethod(x1, x2, x3, x4, x5) → 25664_0_createTree_InvokeMethod(x2, x3)
Cond_23403_0_createTree_LE7(x1, x2, x3, x4, x5, x6) → Cond_23403_0_createTree_LE7(x1, x3, x6)
25294_0_createNode_InvokeMethod(x1, x2, x3, x4) → 25294_0_createNode_InvokeMethod
Cond_23403_0_createTree_LE6(x1, x2, x3, x4, x5, x6) → Cond_23403_0_createTree_LE6(x1, x3, x6)
Cond_23403_0_createTree_LE5(x1, x2, x3, x4, x5, x6) → Cond_23403_0_createTree_LE5(x1, x3, x6)
Cond_25669_1_createTree_InvokeMethod(x1, x2, x3, x4, x5) → Cond_25669_1_createTree_InvokeMethod(x1, x3)
25669_1_createTree_InvokeMethod(x1, x2, x3, x4) → 25669_1_createTree_InvokeMethod(x1, x2)
26060_0_createTree_InvokeMethod(x1, x2, x3, x4, x5) → 26060_0_createTree_InvokeMethod(x2, x3)
Cond_23403_0_createTree_LE4(x1, x2, x3, x4, x5, x6) → Cond_23403_0_createTree_LE4(x1, x3, x6)
25676_0_createNode_InvokeMethod(x1, x2, x3, x4) → 25676_0_createNode_InvokeMethod
Cond_23403_0_createTree_LE3(x1, x2, x3, x4, x5, x6) → Cond_23403_0_createTree_LE3(x1, x3, x6)
Cond_23403_0_createTree_LE2(x1, x2, x3, x4, x5, x6) → Cond_23403_0_createTree_LE2(x1, x3, x6)
2773_0_createNode_InvokeMethod(x1, x2, x3, x4) → 2773_0_createNode_InvokeMethod
Cond_2282_1_createNode_InvokeMethod2(x1, x2, x3, x4) → Cond_2282_1_createNode_InvokeMethod2(x1, x2)
Cond_2373_1_createNode_InvokeMethod1(x1, x2, x3, x4) → Cond_2373_1_createNode_InvokeMethod1(x1, x2)
2373_0_random_IntArithmetic(x1, x2, x3, x4) → 2373_0_random_IntArithmetic(x2, x3)
2373_1_createNode_InvokeMethod(x1, x2, x3) → 2373_1_createNode_InvokeMethod(x1)
Cond_2373_1_createNode_InvokeMethod(x1, x2, x3, x4) → Cond_2373_1_createNode_InvokeMethod(x1, x2)
Cond_2282_1_createNode_InvokeMethod1(x1, x2, x3, x4) → Cond_2282_1_createNode_InvokeMethod1(x1, x2)
Cond_2282_1_createNode_InvokeMethod(x1, x2, x3, x4) → Cond_2282_1_createNode_InvokeMethod(x1, x2)
25321_1_createTree_InvokeMethod(x1, x2, x3, x4) → 25321_1_createTree_InvokeMethod(x1, x2)
Cond_23403_0_createTree_LE1(x1, x2, x3, x4, x5, x6) → Cond_23403_0_createTree_LE1(x1, x3, x6)
Cond_1902_0_createTree_NE1(x1, x2, x3, x4) → Cond_1902_0_createTree_NE1(x1, x3, x4)
1902_0_createTree_NE(x1, x2, x3) → 1902_0_createTree_NE(x2, x3)
Cond_25321_1_createTree_InvokeMethod(x1, x2, x3, x4, x5) → Cond_25321_1_createTree_InvokeMethod(x1, x3)
25727_0_createTree_InvokeMethod(x1, x2, x3, x4, x5) → 25727_0_createTree_InvokeMethod(x2, x3)
25328_0_createNode_InvokeMethod(x1, x2, x3, x4) → 25328_0_createNode_InvokeMethod
Cond_23403_0_createTree_LE(x1, x2, x3, x4, x5, x6) → Cond_23403_0_createTree_LE(x1, x3, x6)
Cond_22181_1_createTree_InvokeMethod1(x1, x2, x3, x4, x5) → Cond_22181_1_createTree_InvokeMethod1(x1, x2, x3, x5)
22181_0_random_IntArithmetic(x1, x2, x3, x4) → 22181_0_random_IntArithmetic(x2, x3)
22181_1_createTree_InvokeMethod(x1, x2, x3, x4) → 22181_1_createTree_InvokeMethod(x1, x2, x4)
26395_0_createTree_InvokeMethod(x1, x2, x3, x4, x5) → 26395_0_createTree_InvokeMethod(x3, x5)
Cond_22181_1_createTree_InvokeMethod(x1, x2, x3, x4, x5) → Cond_22181_1_createTree_InvokeMethod(x1, x2, x3, x5)
Cond_22017_1_createTree_InvokeMethod(x1, x2, x3, x4, x5) → Cond_22017_1_createTree_InvokeMethod(x1, x2, x3, x5)
22017_0_random_ArrayAccess(x1, x2, x3) → 22017_0_random_ArrayAccess(x2, x3)
22017_1_createTree_InvokeMethod(x1, x2, x3, x4) → 22017_1_createTree_InvokeMethod(x1, x2, x4)
24697_0_createTree_InvokeMethod(x1, x2, x3, x4, x5) → 24697_0_createTree_InvokeMethod(x3, x5)
Cond_22030_1_createTree_InvokeMethod(x1, x2, x3, x4, x5) → Cond_22030_1_createTree_InvokeMethod(x1, x2, x3, x5)
22030_0_random_ArrayAccess(x1, x2, x3) → 22030_0_random_ArrayAccess(x2, x3)
22030_1_createTree_InvokeMethod(x1, x2, x3, x4) → 22030_1_createTree_InvokeMethod(x1, x2, x4)
Cond_21887_0_createTree_LE2(x1, x2, x3, x4, x5, x6) → Cond_21887_0_createTree_LE2(x1, x3, x5, x6)
Cond_21887_0_createTree_LE1(x1, x2, x3, x4, x5, x6) → Cond_21887_0_createTree_LE1(x1, x3, x5, x6)
Cond_21887_0_createTree_LE(x1, x2, x3, x4, x5, x6) → Cond_21887_0_createTree_LE(x1, x3, x5, x6)
2971_0_createTree_InvokeMethod(x1, x2, x3) → 2971_0_createTree_InvokeMethod(x2, x3)
2798_0_createNode_InvokeMethod(x1, x2, x3, x4) → 2798_0_createNode_InvokeMethod
Cond_1902_0_createTree_NE(x1, x2, x3, x4) → Cond_1902_0_createTree_NE(x1, x3, x4)
1663_0_random_IntArithmetic(x1, x2, x3, x4) → 1663_0_random_IntArithmetic(x2, x3)
2274_0_createTree_InvokeMethod(x1, x2) → 2274_0_createTree_InvokeMethod
1588_0_random_ArrayAccess(x1, x2, x3) → 1588_0_random_ArrayAccess(x2, x3)
2140_0_createTree_InvokeMethod(x1, x2) → 2140_0_createTree_InvokeMethod
1589_0_random_ArrayAccess(x1, x2, x3) → 1589_0_random_ArrayAccess(x2, x3)
7727_0_main_InvokeMethod(x1, x2, x3, x4) → 7727_0_main_InvokeMethod(x2, x3, x4)
Filtered duplicate args:
21887_0_createTree_LE(x1, x2, x3) → 21887_0_createTree_LE(x2, x3)
Cond_1902_0_createTree_NE1(x1, x2, x3) → Cond_1902_0_createTree_NE1(x1, x3)
1902_0_createTree_NE(x1, x2) → 1902_0_createTree_NE(x2)
Cond_21887_0_createTree_LE2(x1, x2, x3, x4) → Cond_21887_0_createTree_LE2(x1, x3, x4)
Cond_21887_0_createTree_LE1(x1, x2, x3, x4) → Cond_21887_0_createTree_LE1(x1, x3, x4)
Cond_21887_0_createTree_LE(x1, x2, x3, x4) → Cond_21887_0_createTree_LE(x1, x3, x4)
Cond_1902_0_createTree_NE(x1, x2, x3) → Cond_1902_0_createTree_NE(x1, x3)
Filtered unneeded arguments:
7513_1_main_InvokeMethod(x1, x2, x3) → 7513_1_main_InvokeMethod(x1, x3)
Cond_7513_1_main_InvokeMethod(x1, x2, x3) → Cond_7513_1_main_InvokeMethod(x1, x3)
Cond_7513_1_main_InvokeMethod1(x1, x2, x3) → Cond_7513_1_main_InvokeMethod1(x1, x3)
Cond_21887_0_createTree_LE(x1, x2, x3) → Cond_21887_0_createTree_LE(x1, x2)
Cond_21887_0_createTree_LE2(x1, x2, x3) → Cond_21887_0_createTree_LE2(x1, x2)
22030_1_createTree_InvokeMethod(x1, x2, x3) → 22030_1_createTree_InvokeMethod(x1, x3)
Cond_22030_1_createTree_InvokeMethod(x1, x2, x3, x4) → Cond_22030_1_createTree_InvokeMethod(x1, x2, x4)
Cond_22181_1_createTree_InvokeMethod(x1, x2, x3, x4) → Cond_22181_1_createTree_InvokeMethod(x1, x2, x4)
Cond_23403_0_createTree_LE(x1, x2, x3) → Cond_23403_0_createTree_LE(x1, x2)
Cond_23403_0_createTree_LE1(x1, x2, x3) → Cond_23403_0_createTree_LE1(x1, x2)
Cond_23403_0_createTree_LE2(x1, x2, x3) → Cond_23403_0_createTree_LE2(x1, x2)
Cond_23403_0_createTree_LE3(x1, x2, x3) → Cond_23403_0_createTree_LE3(x1, x2)
Cond_23403_0_createTree_LE4(x1, x2, x3) → Cond_23403_0_createTree_LE4(x1, x2)
Cond_23403_0_createTree_LE5(x1, x2, x3) → Cond_23403_0_createTree_LE5(x1, x2)
Cond_23403_0_createTree_LE6(x1, x2, x3) → Cond_23403_0_createTree_LE6(x1, x2)
Cond_23403_0_createTree_LE7(x1, x2, x3) → Cond_23403_0_createTree_LE7(x1, x2)
Cond_23403_0_createTree_LE8(x1, x2, x3) → Cond_23403_0_createTree_LE8(x1, x2)
Cond_23403_0_createTree_LE9(x1, x2, x3) → Cond_23403_0_createTree_LE9(x1, x2)
Cond_23403_0_createTree_LE10(x1, x2, x3) → Cond_23403_0_createTree_LE10(x1, x2)
21978_1_createTree_InvokeMethod(x1, x2, x3) → 21978_1_createTree_InvokeMethod(x1, x3)
Cond_21978_1_createTree_InvokeMethod(x1, x2, x3, x4) → Cond_21978_1_createTree_InvokeMethod(x1, x2, x4)
Filtered all non-integer terms:
7727_0_main_InvokeMethod(x1, x2, x3) → 7727_0_main_InvokeMethod(x2, x3)
2971_0_createTree_InvokeMethod(x1, x2) → 2971_0_createTree_InvokeMethod(x2)
24353_0_createTree_InvokeMethod(x1, x2) → 24353_0_createTree_InvokeMethod(x1)
24697_0_createTree_InvokeMethod(x1, x2) → 24697_0_createTree_InvokeMethod(x1)
25508_0_createTree_InvokeMethod(x1, x2) → 25508_0_createTree_InvokeMethod(x2)
25572_0_createTree_InvokeMethod(x1, x2) → 25572_0_createTree_InvokeMethod(x2)
25664_0_createTree_InvokeMethod(x1, x2) → 25664_0_createTree_InvokeMethod(x2)
25727_0_createTree_InvokeMethod(x1, x2) → 25727_0_createTree_InvokeMethod(x2)
25886_0_createTree_InvokeMethod(x1, x2) → 25886_0_createTree_InvokeMethod(x2)
26060_0_createTree_InvokeMethod(x1, x2) → 26060_0_createTree_InvokeMethod(x2)
26213_0_createTree_InvokeMethod(x1, x2) → 26213_0_createTree_InvokeMethod(x2)
26307_0_createTree_InvokeMethod(x1, x2) → 26307_0_createTree_InvokeMethod(x2)
26395_0_createTree_InvokeMethod(x1, x2) → 26395_0_createTree_InvokeMethod(x1)
1663_0_random_IntArithmetic(x1, x2) → 1663_0_random_IntArithmetic(x2)
21887_0_createTree_LE(x1, x2) → 21887_0_createTree_LE(x2)
Cond_21887_0_createTree_LE(x1, x2) → Cond_21887_0_createTree_LE(x1)
21978_1_createTree_InvokeMethod(x1, x2) → 21978_1_createTree_InvokeMethod(x1)
Cond_21887_0_createTree_LE1(x1, x2, x3) → Cond_21887_0_createTree_LE1(x1, x3)
22017_1_createTree_InvokeMethod(x1, x2, x3) → 22017_1_createTree_InvokeMethod(x1, x2)
Cond_21887_0_createTree_LE2(x1, x2) → Cond_21887_0_createTree_LE2(x1)
22030_1_createTree_InvokeMethod(x1, x2) → 22030_1_createTree_InvokeMethod(x1)
Cond_22030_1_createTree_InvokeMethod(x1, x2, x3) → Cond_22030_1_createTree_InvokeMethod(x1, x2)
Cond_22017_1_createTree_InvokeMethod(x1, x2, x3, x4) → Cond_22017_1_createTree_InvokeMethod(x1, x2, x3)
22181_1_createTree_InvokeMethod(x1, x2, x3) → 22181_1_createTree_InvokeMethod(x1, x2)
Cond_22181_1_createTree_InvokeMethod(x1, x2, x3) → Cond_22181_1_createTree_InvokeMethod(x1, x2)
22181_0_random_IntArithmetic(x1, x2) → 22181_0_random_IntArithmetic(x2)
Cond_22181_1_createTree_InvokeMethod1(x1, x2, x3, x4) → Cond_22181_1_createTree_InvokeMethod1(x1, x2, x3)
23403_0_createTree_LE(x1, x2, x3) → 23403_0_createTree_LE(x1, x3)
2373_0_random_IntArithmetic(x1, x2) → 2373_0_random_IntArithmetic(x2)
25668_0_createTree_Store(x1, x2) → 25668_0_createTree_Store(x1)
25511_0_createTree_Store(x1, x2) → 25511_0_createTree_Store(x1)
Cond_21978_1_createTree_InvokeMethod(x1, x2, x3) → Cond_21978_1_createTree_InvokeMethod(x1, x2)
Cond_25668_0_createTree_Store(x1, x2, x3) → Cond_25668_0_createTree_Store(x1, x2)
Cond_25511_0_createTree_Store(x1, x2, x3) → Cond_25511_0_createTree_Store(x1, x2)
Combined rules. Obtained 2 rules for P and 93 rules for R.
Finished conversion. Obtained 2 rules for P and 93 rules for R. System has predefined symbols.
(4) Complex Obligation (AND)
(5) Obligation:
IDP problem:
The following function symbols are pre-defined:
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
| ~ | Bwxor: (Integer, Integer) -> Integer |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
The following domains are used:
Boolean, Integer
The ITRS R consists of the following rules:
25776_0_createNode_New →
25795_0_createNode_InvokeMethod25776_0_createNode_New →
25183_0_createNode_InvokeMethod25776_0_createNode_New →
25519_0_createNode_InvokeMethod25776_0_createNode_New →
25211_0_createNode_InvokeMethod25776_0_createNode_New →
25963_0_createNode_InvokeMethod25776_0_createNode_New →
25294_0_createNode_InvokeMethod25776_0_createNode_New →
25676_0_createNode_InvokeMethod25776_0_createNode_New →
25328_0_createNode_InvokeMethod25776_0_createNode_New →
2282_1_createNode_InvokeMethod25776_1_createTree_InvokeMethod(
2813_0_createNode_InvokeMethod,
x0) →
26213_0_createTree_InvokeMethod(
x0)
25776_1_createTree_InvokeMethod(
2933_0_createNode_InvokeMethod,
x0) →
26213_0_createTree_InvokeMethod(
x0)
25776_1_createTree_InvokeMethod(
2813_0_createNode_InvokeMethod,
x0) →
25508_0_createTree_InvokeMethod(
x0)
25776_1_createTree_InvokeMethod(
2933_0_createNode_InvokeMethod,
x0) →
25508_0_createTree_InvokeMethod(
x0)
25776_1_createTree_InvokeMethod(
2813_0_createNode_InvokeMethod,
x0) →
25886_0_createTree_InvokeMethod(
x0)
25776_1_createTree_InvokeMethod(
2933_0_createNode_InvokeMethod,
x0) →
25886_0_createTree_InvokeMethod(
x0)
25776_1_createTree_InvokeMethod(
2813_0_createNode_InvokeMethod,
x0) →
25572_0_createTree_InvokeMethod(
x0)
25776_1_createTree_InvokeMethod(
2933_0_createNode_InvokeMethod,
x0) →
25572_0_createTree_InvokeMethod(
x0)
25776_1_createTree_InvokeMethod(
2813_0_createNode_InvokeMethod,
x0) →
26307_0_createTree_InvokeMethod(
x0)
25776_1_createTree_InvokeMethod(
2933_0_createNode_InvokeMethod,
x0) →
26307_0_createTree_InvokeMethod(
x0)
25776_1_createTree_InvokeMethod(
2813_0_createNode_InvokeMethod,
x0) →
25664_0_createTree_InvokeMethod(
x0)
25776_1_createTree_InvokeMethod(
2933_0_createNode_InvokeMethod,
x0) →
25664_0_createTree_InvokeMethod(
x0)
25776_1_createTree_InvokeMethod(
2813_0_createNode_InvokeMethod,
x0) →
26060_0_createTree_InvokeMethod(
x0)
25776_1_createTree_InvokeMethod(
2933_0_createNode_InvokeMethod,
x0) →
26060_0_createTree_InvokeMethod(
x0)
25776_1_createTree_InvokeMethod(
2813_0_createNode_InvokeMethod,
x0) →
25727_0_createTree_InvokeMethod(
x0)
25776_1_createTree_InvokeMethod(
2933_0_createNode_InvokeMethod,
x0) →
25727_0_createTree_InvokeMethod(
x0)
2282_1_createNode_InvokeMethod →
2813_0_createNode_InvokeMethod2282_1_createNode_InvokeMethod →
2773_0_createNode_InvokeMethod2282_1_createNode_InvokeMethod →
2933_0_createNode_InvokeMethod2282_1_createNode_InvokeMethod →
2619_0_createNode_ReturnThe integer pair graph contains the following rules and edges:
(0):
25776_1_CREATETREE_INVOKEMETHOD(
2619_0_createNode_Return,
x0[0]) →
COND_25776_1_CREATETREE_INVOKEMETHOD(
x0[0] > 0 && 0 < x0[0] + -1,
2619_0_createNode_Return,
x0[0])
(1):
COND_25776_1_CREATETREE_INVOKEMETHOD(
TRUE,
2619_0_createNode_Return,
x0[1]) →
22017_1_CREATETREE_INVOKEMETHOD(
x0[1] + -1)
(2):
22017_1_CREATETREE_INVOKEMETHOD(
x0[2]) →
COND_22017_1_CREATETREE_INVOKEMETHOD(
x0[2] > 0 && 0 < x0[2] + -1,
x0[2])
(3):
COND_22017_1_CREATETREE_INVOKEMETHOD(
TRUE,
x0[3]) →
22017_1_CREATETREE_INVOKEMETHOD(
x0[3] + -1)
(4):
22017_1_CREATETREE_INVOKEMETHOD(
x0[4]) →
25776_1_CREATETREE_INVOKEMETHOD(
25776_0_createNode_New,
x0[4])
(0) -> (1), if ((x0[0] > 0 && 0 < x0[0] + -1 →* TRUE)∧(x0[0] →* x0[1]))
(1) -> (2), if ((x0[1] + -1 →* x0[2]))
(1) -> (4), if ((x0[1] + -1 →* x0[4]))
(2) -> (3), if ((x0[2] > 0 && 0 < x0[2] + -1 →* TRUE)∧(x0[2] →* x0[3]))
(3) -> (2), if ((x0[3] + -1 →* x0[2]))
(3) -> (4), if ((x0[3] + -1 →* x0[4]))
(4) -> (0), if ((25776_0_createNode_New →* 2619_0_createNode_Return)∧(x0[4] →* x0[0]))
The set Q consists of the following terms:
25776_0_createNode_New25776_1_createTree_InvokeMethod(
2813_0_createNode_InvokeMethod,
x0)
25776_1_createTree_InvokeMethod(
2933_0_createNode_InvokeMethod,
x0)
2282_1_createNode_InvokeMethod
(6) IDPNonInfProof (SOUND transformation)
The constraints were generated the following way:
The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps:
Note that
final constraints are written in
bold face.
For Pair
25776_1_CREATETREE_INVOKEMETHOD(
2619_0_createNode_Return,
x0) →
COND_25776_1_CREATETREE_INVOKEMETHOD(
&&(
>(
x0,
0),
<(
0,
+(
x0,
-1))),
2619_0_createNode_Return,
x0) the following chains were created:
- We consider the chain 25776_1_CREATETREE_INVOKEMETHOD(2619_0_createNode_Return, x0[0]) → COND_25776_1_CREATETREE_INVOKEMETHOD(&&(>(x0[0], 0), <(0, +(x0[0], -1))), 2619_0_createNode_Return, x0[0]), COND_25776_1_CREATETREE_INVOKEMETHOD(TRUE, 2619_0_createNode_Return, x0[1]) → 22017_1_CREATETREE_INVOKEMETHOD(+(x0[1], -1)) which results in the following constraint:
(1) (&&(>(x0[0], 0), <(0, +(x0[0], -1)))=TRUE∧x0[0]=x0[1] ⇒ 25776_1_CREATETREE_INVOKEMETHOD(2619_0_createNode_Return, x0[0])≥NonInfC∧25776_1_CREATETREE_INVOKEMETHOD(2619_0_createNode_Return, x0[0])≥COND_25776_1_CREATETREE_INVOKEMETHOD(&&(>(x0[0], 0), <(0, +(x0[0], -1))), 2619_0_createNode_Return, x0[0])∧(UIncreasing(COND_25776_1_CREATETREE_INVOKEMETHOD(&&(>(x0[0], 0), <(0, +(x0[0], -1))), 2619_0_createNode_Return, x0[0])), ≥))
We simplified constraint (1) using rules (IV), (IDP_BOOLEAN) which results in the following new constraint:
(2) (>(x0[0], 0)=TRUE∧<(0, +(x0[0], -1))=TRUE ⇒ 25776_1_CREATETREE_INVOKEMETHOD(2619_0_createNode_Return, x0[0])≥NonInfC∧25776_1_CREATETREE_INVOKEMETHOD(2619_0_createNode_Return, x0[0])≥COND_25776_1_CREATETREE_INVOKEMETHOD(&&(>(x0[0], 0), <(0, +(x0[0], -1))), 2619_0_createNode_Return, x0[0])∧(UIncreasing(COND_25776_1_CREATETREE_INVOKEMETHOD(&&(>(x0[0], 0), <(0, +(x0[0], -1))), 2619_0_createNode_Return, x0[0])), ≥))
We simplified constraint (2) using rule (POLY_CONSTRAINTS) which results in the following new constraint:
(3) (x0[0] + [-1] ≥ 0∧x0[0] + [-2] ≥ 0 ⇒ (UIncreasing(COND_25776_1_CREATETREE_INVOKEMETHOD(&&(>(x0[0], 0), <(0, +(x0[0], -1))), 2619_0_createNode_Return, x0[0])), ≥)∧[(-1)Bound*bni_37] + [(2)bni_37]x0[0] ≥ 0∧[(-1)bso_38] ≥ 0)
We simplified constraint (3) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:
(4) (x0[0] + [-1] ≥ 0∧x0[0] + [-2] ≥ 0 ⇒ (UIncreasing(COND_25776_1_CREATETREE_INVOKEMETHOD(&&(>(x0[0], 0), <(0, +(x0[0], -1))), 2619_0_createNode_Return, x0[0])), ≥)∧[(-1)Bound*bni_37] + [(2)bni_37]x0[0] ≥ 0∧[(-1)bso_38] ≥ 0)
We simplified constraint (4) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:
(5) (x0[0] + [-1] ≥ 0∧x0[0] + [-2] ≥ 0 ⇒ (UIncreasing(COND_25776_1_CREATETREE_INVOKEMETHOD(&&(>(x0[0], 0), <(0, +(x0[0], -1))), 2619_0_createNode_Return, x0[0])), ≥)∧[(-1)Bound*bni_37] + [(2)bni_37]x0[0] ≥ 0∧[(-1)bso_38] ≥ 0)
We simplified constraint (5) using rule (IDP_SMT_SPLIT) which results in the following new constraint:
(6) (x0[0] ≥ 0∧[-1] + x0[0] ≥ 0 ⇒ (UIncreasing(COND_25776_1_CREATETREE_INVOKEMETHOD(&&(>(x0[0], 0), <(0, +(x0[0], -1))), 2619_0_createNode_Return, x0[0])), ≥)∧[(-1)Bound*bni_37 + (2)bni_37] + [(2)bni_37]x0[0] ≥ 0∧[(-1)bso_38] ≥ 0)
We simplified constraint (6) using rule (IDP_SMT_SPLIT) which results in the following new constraint:
(7) ([1] + x0[0] ≥ 0∧x0[0] ≥ 0 ⇒ (UIncreasing(COND_25776_1_CREATETREE_INVOKEMETHOD(&&(>(x0[0], 0), <(0, +(x0[0], -1))), 2619_0_createNode_Return, x0[0])), ≥)∧[(-1)Bound*bni_37 + (4)bni_37] + [(2)bni_37]x0[0] ≥ 0∧[(-1)bso_38] ≥ 0)
For Pair
COND_25776_1_CREATETREE_INVOKEMETHOD(
TRUE,
2619_0_createNode_Return,
x0) →
22017_1_CREATETREE_INVOKEMETHOD(
+(
x0,
-1)) the following chains were created:
- We consider the chain COND_25776_1_CREATETREE_INVOKEMETHOD(TRUE, 2619_0_createNode_Return, x0[1]) → 22017_1_CREATETREE_INVOKEMETHOD(+(x0[1], -1)) which results in the following constraint:
(8) (COND_25776_1_CREATETREE_INVOKEMETHOD(TRUE, 2619_0_createNode_Return, x0[1])≥NonInfC∧COND_25776_1_CREATETREE_INVOKEMETHOD(TRUE, 2619_0_createNode_Return, x0[1])≥22017_1_CREATETREE_INVOKEMETHOD(+(x0[1], -1))∧(UIncreasing(22017_1_CREATETREE_INVOKEMETHOD(+(x0[1], -1))), ≥))
We simplified constraint (8) using rule (POLY_CONSTRAINTS) which results in the following new constraint:
(9) ((UIncreasing(22017_1_CREATETREE_INVOKEMETHOD(+(x0[1], -1))), ≥)∧[1 + (-1)bso_40] ≥ 0)
We simplified constraint (9) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:
(10) ((UIncreasing(22017_1_CREATETREE_INVOKEMETHOD(+(x0[1], -1))), ≥)∧[1 + (-1)bso_40] ≥ 0)
We simplified constraint (10) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:
(11) ((UIncreasing(22017_1_CREATETREE_INVOKEMETHOD(+(x0[1], -1))), ≥)∧[1 + (-1)bso_40] ≥ 0)
We simplified constraint (11) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:
(12) ((UIncreasing(22017_1_CREATETREE_INVOKEMETHOD(+(x0[1], -1))), ≥)∧0 = 0∧[1 + (-1)bso_40] ≥ 0)
For Pair
22017_1_CREATETREE_INVOKEMETHOD(
x0) →
COND_22017_1_CREATETREE_INVOKEMETHOD(
&&(
>(
x0,
0),
<(
0,
+(
x0,
-1))),
x0) the following chains were created:
- We consider the chain 22017_1_CREATETREE_INVOKEMETHOD(x0[2]) → COND_22017_1_CREATETREE_INVOKEMETHOD(&&(>(x0[2], 0), <(0, +(x0[2], -1))), x0[2]), COND_22017_1_CREATETREE_INVOKEMETHOD(TRUE, x0[3]) → 22017_1_CREATETREE_INVOKEMETHOD(+(x0[3], -1)) which results in the following constraint:
(13) (&&(>(x0[2], 0), <(0, +(x0[2], -1)))=TRUE∧x0[2]=x0[3] ⇒ 22017_1_CREATETREE_INVOKEMETHOD(x0[2])≥NonInfC∧22017_1_CREATETREE_INVOKEMETHOD(x0[2])≥COND_22017_1_CREATETREE_INVOKEMETHOD(&&(>(x0[2], 0), <(0, +(x0[2], -1))), x0[2])∧(UIncreasing(COND_22017_1_CREATETREE_INVOKEMETHOD(&&(>(x0[2], 0), <(0, +(x0[2], -1))), x0[2])), ≥))
We simplified constraint (13) using rules (IV), (IDP_BOOLEAN) which results in the following new constraint:
(14) (>(x0[2], 0)=TRUE∧<(0, +(x0[2], -1))=TRUE ⇒ 22017_1_CREATETREE_INVOKEMETHOD(x0[2])≥NonInfC∧22017_1_CREATETREE_INVOKEMETHOD(x0[2])≥COND_22017_1_CREATETREE_INVOKEMETHOD(&&(>(x0[2], 0), <(0, +(x0[2], -1))), x0[2])∧(UIncreasing(COND_22017_1_CREATETREE_INVOKEMETHOD(&&(>(x0[2], 0), <(0, +(x0[2], -1))), x0[2])), ≥))
We simplified constraint (14) using rule (POLY_CONSTRAINTS) which results in the following new constraint:
(15) (x0[2] + [-1] ≥ 0∧x0[2] + [-2] ≥ 0 ⇒ (UIncreasing(COND_22017_1_CREATETREE_INVOKEMETHOD(&&(>(x0[2], 0), <(0, +(x0[2], -1))), x0[2])), ≥)∧[bni_41 + (-1)Bound*bni_41] + [(2)bni_41]x0[2] ≥ 0∧[(-1)bso_42] ≥ 0)
We simplified constraint (15) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:
(16) (x0[2] + [-1] ≥ 0∧x0[2] + [-2] ≥ 0 ⇒ (UIncreasing(COND_22017_1_CREATETREE_INVOKEMETHOD(&&(>(x0[2], 0), <(0, +(x0[2], -1))), x0[2])), ≥)∧[bni_41 + (-1)Bound*bni_41] + [(2)bni_41]x0[2] ≥ 0∧[(-1)bso_42] ≥ 0)
We simplified constraint (16) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:
(17) (x0[2] + [-1] ≥ 0∧x0[2] + [-2] ≥ 0 ⇒ (UIncreasing(COND_22017_1_CREATETREE_INVOKEMETHOD(&&(>(x0[2], 0), <(0, +(x0[2], -1))), x0[2])), ≥)∧[bni_41 + (-1)Bound*bni_41] + [(2)bni_41]x0[2] ≥ 0∧[(-1)bso_42] ≥ 0)
We simplified constraint (17) using rule (IDP_SMT_SPLIT) which results in the following new constraint:
(18) (x0[2] ≥ 0∧[-1] + x0[2] ≥ 0 ⇒ (UIncreasing(COND_22017_1_CREATETREE_INVOKEMETHOD(&&(>(x0[2], 0), <(0, +(x0[2], -1))), x0[2])), ≥)∧[(3)bni_41 + (-1)Bound*bni_41] + [(2)bni_41]x0[2] ≥ 0∧[(-1)bso_42] ≥ 0)
We simplified constraint (18) using rule (IDP_SMT_SPLIT) which results in the following new constraint:
(19) ([1] + x0[2] ≥ 0∧x0[2] ≥ 0 ⇒ (UIncreasing(COND_22017_1_CREATETREE_INVOKEMETHOD(&&(>(x0[2], 0), <(0, +(x0[2], -1))), x0[2])), ≥)∧[(5)bni_41 + (-1)Bound*bni_41] + [(2)bni_41]x0[2] ≥ 0∧[(-1)bso_42] ≥ 0)
For Pair
COND_22017_1_CREATETREE_INVOKEMETHOD(
TRUE,
x0) →
22017_1_CREATETREE_INVOKEMETHOD(
+(
x0,
-1)) the following chains were created:
- We consider the chain COND_22017_1_CREATETREE_INVOKEMETHOD(TRUE, x0[3]) → 22017_1_CREATETREE_INVOKEMETHOD(+(x0[3], -1)) which results in the following constraint:
(20) (COND_22017_1_CREATETREE_INVOKEMETHOD(TRUE, x0[3])≥NonInfC∧COND_22017_1_CREATETREE_INVOKEMETHOD(TRUE, x0[3])≥22017_1_CREATETREE_INVOKEMETHOD(+(x0[3], -1))∧(UIncreasing(22017_1_CREATETREE_INVOKEMETHOD(+(x0[3], -1))), ≥))
We simplified constraint (20) using rule (POLY_CONSTRAINTS) which results in the following new constraint:
(21) ((UIncreasing(22017_1_CREATETREE_INVOKEMETHOD(+(x0[3], -1))), ≥)∧[2 + (-1)bso_44] ≥ 0)
We simplified constraint (21) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:
(22) ((UIncreasing(22017_1_CREATETREE_INVOKEMETHOD(+(x0[3], -1))), ≥)∧[2 + (-1)bso_44] ≥ 0)
We simplified constraint (22) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:
(23) ((UIncreasing(22017_1_CREATETREE_INVOKEMETHOD(+(x0[3], -1))), ≥)∧[2 + (-1)bso_44] ≥ 0)
We simplified constraint (23) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:
(24) ((UIncreasing(22017_1_CREATETREE_INVOKEMETHOD(+(x0[3], -1))), ≥)∧0 = 0∧[2 + (-1)bso_44] ≥ 0)
For Pair
22017_1_CREATETREE_INVOKEMETHOD(
x0) →
25776_1_CREATETREE_INVOKEMETHOD(
25776_0_createNode_New,
x0) the following chains were created:
- We consider the chain 22017_1_CREATETREE_INVOKEMETHOD(x0[4]) → 25776_1_CREATETREE_INVOKEMETHOD(25776_0_createNode_New, x0[4]) which results in the following constraint:
(25) (22017_1_CREATETREE_INVOKEMETHOD(x0[4])≥NonInfC∧22017_1_CREATETREE_INVOKEMETHOD(x0[4])≥25776_1_CREATETREE_INVOKEMETHOD(25776_0_createNode_New, x0[4])∧(UIncreasing(25776_1_CREATETREE_INVOKEMETHOD(25776_0_createNode_New, x0[4])), ≥))
We simplified constraint (25) using rule (POLY_CONSTRAINTS) which results in the following new constraint:
(26) ((UIncreasing(25776_1_CREATETREE_INVOKEMETHOD(25776_0_createNode_New, x0[4])), ≥)∧[1 + (-1)bso_46] ≥ 0)
We simplified constraint (26) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:
(27) ((UIncreasing(25776_1_CREATETREE_INVOKEMETHOD(25776_0_createNode_New, x0[4])), ≥)∧[1 + (-1)bso_46] ≥ 0)
We simplified constraint (27) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:
(28) ((UIncreasing(25776_1_CREATETREE_INVOKEMETHOD(25776_0_createNode_New, x0[4])), ≥)∧[1 + (-1)bso_46] ≥ 0)
We simplified constraint (28) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:
(29) ((UIncreasing(25776_1_CREATETREE_INVOKEMETHOD(25776_0_createNode_New, x0[4])), ≥)∧0 = 0∧[1 + (-1)bso_46] ≥ 0)
To summarize, we get the following constraints P
≥ for the following pairs.
- 25776_1_CREATETREE_INVOKEMETHOD(2619_0_createNode_Return, x0) → COND_25776_1_CREATETREE_INVOKEMETHOD(&&(>(x0, 0), <(0, +(x0, -1))), 2619_0_createNode_Return, x0)
- ([1] + x0[0] ≥ 0∧x0[0] ≥ 0 ⇒ (UIncreasing(COND_25776_1_CREATETREE_INVOKEMETHOD(&&(>(x0[0], 0), <(0, +(x0[0], -1))), 2619_0_createNode_Return, x0[0])), ≥)∧[(-1)Bound*bni_37 + (4)bni_37] + [(2)bni_37]x0[0] ≥ 0∧[(-1)bso_38] ≥ 0)
- COND_25776_1_CREATETREE_INVOKEMETHOD(TRUE, 2619_0_createNode_Return, x0) → 22017_1_CREATETREE_INVOKEMETHOD(+(x0, -1))
- ((UIncreasing(22017_1_CREATETREE_INVOKEMETHOD(+(x0[1], -1))), ≥)∧0 = 0∧[1 + (-1)bso_40] ≥ 0)
- 22017_1_CREATETREE_INVOKEMETHOD(x0) → COND_22017_1_CREATETREE_INVOKEMETHOD(&&(>(x0, 0), <(0, +(x0, -1))), x0)
- ([1] + x0[2] ≥ 0∧x0[2] ≥ 0 ⇒ (UIncreasing(COND_22017_1_CREATETREE_INVOKEMETHOD(&&(>(x0[2], 0), <(0, +(x0[2], -1))), x0[2])), ≥)∧[(5)bni_41 + (-1)Bound*bni_41] + [(2)bni_41]x0[2] ≥ 0∧[(-1)bso_42] ≥ 0)
- COND_22017_1_CREATETREE_INVOKEMETHOD(TRUE, x0) → 22017_1_CREATETREE_INVOKEMETHOD(+(x0, -1))
- ((UIncreasing(22017_1_CREATETREE_INVOKEMETHOD(+(x0[3], -1))), ≥)∧0 = 0∧[2 + (-1)bso_44] ≥ 0)
- 22017_1_CREATETREE_INVOKEMETHOD(x0) → 25776_1_CREATETREE_INVOKEMETHOD(25776_0_createNode_New, x0)
- ((UIncreasing(25776_1_CREATETREE_INVOKEMETHOD(25776_0_createNode_New, x0[4])), ≥)∧0 = 0∧[1 + (-1)bso_46] ≥ 0)
The constraints for P
> respective P
bound are constructed from P
≥ where we just replace every occurence of "t ≥ s" in P
≥ by "t > s" respective "t ≥
c". Here
c stands for the fresh constant used for P
bound.
Using the following integer polynomial ordering the resulting constraints can be solved
Polynomial interpretation over integers[POLO]:
POL(TRUE) = 0
POL(FALSE) = 0
POL(25776_0_createNode_New) = [-1]
POL(25795_0_createNode_InvokeMethod) = [-1]
POL(25183_0_createNode_InvokeMethod) = [-1]
POL(25519_0_createNode_InvokeMethod) = [-1]
POL(25211_0_createNode_InvokeMethod) = [-1]
POL(25963_0_createNode_InvokeMethod) = [-1]
POL(25294_0_createNode_InvokeMethod) = [-1]
POL(25676_0_createNode_InvokeMethod) = [-1]
POL(25328_0_createNode_InvokeMethod) = [-1]
POL(2282_1_createNode_InvokeMethod) = [-1]
POL(25776_1_createTree_InvokeMethod(x1, x2)) = [-1]
POL(2813_0_createNode_InvokeMethod) = [-1]
POL(26213_0_createTree_InvokeMethod(x1)) = [-1]
POL(2933_0_createNode_InvokeMethod) = [-1]
POL(25508_0_createTree_InvokeMethod(x1)) = [-1]
POL(25886_0_createTree_InvokeMethod(x1)) = [-1]
POL(25572_0_createTree_InvokeMethod(x1)) = [-1]
POL(26307_0_createTree_InvokeMethod(x1)) = [-1]
POL(25664_0_createTree_InvokeMethod(x1)) = [-1]
POL(26060_0_createTree_InvokeMethod(x1)) = [-1]
POL(25727_0_createTree_InvokeMethod(x1)) = [-1]
POL(2773_0_createNode_InvokeMethod) = [-1]
POL(2619_0_createNode_Return) = [-1]
POL(25776_1_CREATETREE_INVOKEMETHOD(x1, x2)) = [2]x2
POL(COND_25776_1_CREATETREE_INVOKEMETHOD(x1, x2, x3)) = [2]x3
POL(&&(x1, x2)) = [-1]
POL(>(x1, x2)) = [-1]
POL(0) = 0
POL(<(x1, x2)) = [-1]
POL(+(x1, x2)) = x1 + x2
POL(-1) = [-1]
POL(22017_1_CREATETREE_INVOKEMETHOD(x1)) = [1] + [2]x1
POL(COND_22017_1_CREATETREE_INVOKEMETHOD(x1, x2)) = [1] + [2]x2
The following pairs are in P
>:
COND_25776_1_CREATETREE_INVOKEMETHOD(TRUE, 2619_0_createNode_Return, x0[1]) → 22017_1_CREATETREE_INVOKEMETHOD(+(x0[1], -1))
COND_22017_1_CREATETREE_INVOKEMETHOD(TRUE, x0[3]) → 22017_1_CREATETREE_INVOKEMETHOD(+(x0[3], -1))
22017_1_CREATETREE_INVOKEMETHOD(x0[4]) → 25776_1_CREATETREE_INVOKEMETHOD(25776_0_createNode_New, x0[4])
The following pairs are in P
bound:
25776_1_CREATETREE_INVOKEMETHOD(2619_0_createNode_Return, x0[0]) → COND_25776_1_CREATETREE_INVOKEMETHOD(&&(>(x0[0], 0), <(0, +(x0[0], -1))), 2619_0_createNode_Return, x0[0])
22017_1_CREATETREE_INVOKEMETHOD(x0[2]) → COND_22017_1_CREATETREE_INVOKEMETHOD(&&(>(x0[2], 0), <(0, +(x0[2], -1))), x0[2])
The following pairs are in P
≥:
25776_1_CREATETREE_INVOKEMETHOD(2619_0_createNode_Return, x0[0]) → COND_25776_1_CREATETREE_INVOKEMETHOD(&&(>(x0[0], 0), <(0, +(x0[0], -1))), 2619_0_createNode_Return, x0[0])
22017_1_CREATETREE_INVOKEMETHOD(x0[2]) → COND_22017_1_CREATETREE_INVOKEMETHOD(&&(>(x0[2], 0), <(0, +(x0[2], -1))), x0[2])
There are no usable rules.
(7) Complex Obligation (AND)
(8) Obligation:
IDP problem:
The following function symbols are pre-defined:
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
| ~ | Bwxor: (Integer, Integer) -> Integer |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
The following domains are used:
Boolean, Integer
The ITRS R consists of the following rules:
25776_0_createNode_New →
25795_0_createNode_InvokeMethod25776_0_createNode_New →
25183_0_createNode_InvokeMethod25776_0_createNode_New →
25519_0_createNode_InvokeMethod25776_0_createNode_New →
25211_0_createNode_InvokeMethod25776_0_createNode_New →
25963_0_createNode_InvokeMethod25776_0_createNode_New →
25294_0_createNode_InvokeMethod25776_0_createNode_New →
25676_0_createNode_InvokeMethod25776_0_createNode_New →
25328_0_createNode_InvokeMethod25776_0_createNode_New →
2282_1_createNode_InvokeMethod25776_1_createTree_InvokeMethod(
2813_0_createNode_InvokeMethod,
x0) →
26213_0_createTree_InvokeMethod(
x0)
25776_1_createTree_InvokeMethod(
2933_0_createNode_InvokeMethod,
x0) →
26213_0_createTree_InvokeMethod(
x0)
25776_1_createTree_InvokeMethod(
2813_0_createNode_InvokeMethod,
x0) →
25508_0_createTree_InvokeMethod(
x0)
25776_1_createTree_InvokeMethod(
2933_0_createNode_InvokeMethod,
x0) →
25508_0_createTree_InvokeMethod(
x0)
25776_1_createTree_InvokeMethod(
2813_0_createNode_InvokeMethod,
x0) →
25886_0_createTree_InvokeMethod(
x0)
25776_1_createTree_InvokeMethod(
2933_0_createNode_InvokeMethod,
x0) →
25886_0_createTree_InvokeMethod(
x0)
25776_1_createTree_InvokeMethod(
2813_0_createNode_InvokeMethod,
x0) →
25572_0_createTree_InvokeMethod(
x0)
25776_1_createTree_InvokeMethod(
2933_0_createNode_InvokeMethod,
x0) →
25572_0_createTree_InvokeMethod(
x0)
25776_1_createTree_InvokeMethod(
2813_0_createNode_InvokeMethod,
x0) →
26307_0_createTree_InvokeMethod(
x0)
25776_1_createTree_InvokeMethod(
2933_0_createNode_InvokeMethod,
x0) →
26307_0_createTree_InvokeMethod(
x0)
25776_1_createTree_InvokeMethod(
2813_0_createNode_InvokeMethod,
x0) →
25664_0_createTree_InvokeMethod(
x0)
25776_1_createTree_InvokeMethod(
2933_0_createNode_InvokeMethod,
x0) →
25664_0_createTree_InvokeMethod(
x0)
25776_1_createTree_InvokeMethod(
2813_0_createNode_InvokeMethod,
x0) →
26060_0_createTree_InvokeMethod(
x0)
25776_1_createTree_InvokeMethod(
2933_0_createNode_InvokeMethod,
x0) →
26060_0_createTree_InvokeMethod(
x0)
25776_1_createTree_InvokeMethod(
2813_0_createNode_InvokeMethod,
x0) →
25727_0_createTree_InvokeMethod(
x0)
25776_1_createTree_InvokeMethod(
2933_0_createNode_InvokeMethod,
x0) →
25727_0_createTree_InvokeMethod(
x0)
2282_1_createNode_InvokeMethod →
2813_0_createNode_InvokeMethod2282_1_createNode_InvokeMethod →
2773_0_createNode_InvokeMethod2282_1_createNode_InvokeMethod →
2933_0_createNode_InvokeMethod2282_1_createNode_InvokeMethod →
2619_0_createNode_ReturnThe integer pair graph contains the following rules and edges:
(0):
25776_1_CREATETREE_INVOKEMETHOD(
2619_0_createNode_Return,
x0[0]) →
COND_25776_1_CREATETREE_INVOKEMETHOD(
x0[0] > 0 && 0 < x0[0] + -1,
2619_0_createNode_Return,
x0[0])
(2):
22017_1_CREATETREE_INVOKEMETHOD(
x0[2]) →
COND_22017_1_CREATETREE_INVOKEMETHOD(
x0[2] > 0 && 0 < x0[2] + -1,
x0[2])
The set Q consists of the following terms:
25776_0_createNode_New25776_1_createTree_InvokeMethod(
2813_0_createNode_InvokeMethod,
x0)
25776_1_createTree_InvokeMethod(
2933_0_createNode_InvokeMethod,
x0)
2282_1_createNode_InvokeMethod
(9) IDependencyGraphProof (EQUIVALENT transformation)
The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 2 less nodes.
(10) TRUE
(11) Obligation:
IDP problem:
The following function symbols are pre-defined:
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
| ~ | Bwxor: (Integer, Integer) -> Integer |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
The following domains are used:
Integer
The ITRS R consists of the following rules:
25776_0_createNode_New →
25795_0_createNode_InvokeMethod25776_0_createNode_New →
25183_0_createNode_InvokeMethod25776_0_createNode_New →
25519_0_createNode_InvokeMethod25776_0_createNode_New →
25211_0_createNode_InvokeMethod25776_0_createNode_New →
25963_0_createNode_InvokeMethod25776_0_createNode_New →
25294_0_createNode_InvokeMethod25776_0_createNode_New →
25676_0_createNode_InvokeMethod25776_0_createNode_New →
25328_0_createNode_InvokeMethod25776_0_createNode_New →
2282_1_createNode_InvokeMethod25776_1_createTree_InvokeMethod(
2813_0_createNode_InvokeMethod,
x0) →
26213_0_createTree_InvokeMethod(
x0)
25776_1_createTree_InvokeMethod(
2933_0_createNode_InvokeMethod,
x0) →
26213_0_createTree_InvokeMethod(
x0)
25776_1_createTree_InvokeMethod(
2813_0_createNode_InvokeMethod,
x0) →
25508_0_createTree_InvokeMethod(
x0)
25776_1_createTree_InvokeMethod(
2933_0_createNode_InvokeMethod,
x0) →
25508_0_createTree_InvokeMethod(
x0)
25776_1_createTree_InvokeMethod(
2813_0_createNode_InvokeMethod,
x0) →
25886_0_createTree_InvokeMethod(
x0)
25776_1_createTree_InvokeMethod(
2933_0_createNode_InvokeMethod,
x0) →
25886_0_createTree_InvokeMethod(
x0)
25776_1_createTree_InvokeMethod(
2813_0_createNode_InvokeMethod,
x0) →
25572_0_createTree_InvokeMethod(
x0)
25776_1_createTree_InvokeMethod(
2933_0_createNode_InvokeMethod,
x0) →
25572_0_createTree_InvokeMethod(
x0)
25776_1_createTree_InvokeMethod(
2813_0_createNode_InvokeMethod,
x0) →
26307_0_createTree_InvokeMethod(
x0)
25776_1_createTree_InvokeMethod(
2933_0_createNode_InvokeMethod,
x0) →
26307_0_createTree_InvokeMethod(
x0)
25776_1_createTree_InvokeMethod(
2813_0_createNode_InvokeMethod,
x0) →
25664_0_createTree_InvokeMethod(
x0)
25776_1_createTree_InvokeMethod(
2933_0_createNode_InvokeMethod,
x0) →
25664_0_createTree_InvokeMethod(
x0)
25776_1_createTree_InvokeMethod(
2813_0_createNode_InvokeMethod,
x0) →
26060_0_createTree_InvokeMethod(
x0)
25776_1_createTree_InvokeMethod(
2933_0_createNode_InvokeMethod,
x0) →
26060_0_createTree_InvokeMethod(
x0)
25776_1_createTree_InvokeMethod(
2813_0_createNode_InvokeMethod,
x0) →
25727_0_createTree_InvokeMethod(
x0)
25776_1_createTree_InvokeMethod(
2933_0_createNode_InvokeMethod,
x0) →
25727_0_createTree_InvokeMethod(
x0)
2282_1_createNode_InvokeMethod →
2813_0_createNode_InvokeMethod2282_1_createNode_InvokeMethod →
2773_0_createNode_InvokeMethod2282_1_createNode_InvokeMethod →
2933_0_createNode_InvokeMethod2282_1_createNode_InvokeMethod →
2619_0_createNode_ReturnThe integer pair graph contains the following rules and edges:
(1):
COND_25776_1_CREATETREE_INVOKEMETHOD(
TRUE,
2619_0_createNode_Return,
x0[1]) →
22017_1_CREATETREE_INVOKEMETHOD(
x0[1] + -1)
(3):
COND_22017_1_CREATETREE_INVOKEMETHOD(
TRUE,
x0[3]) →
22017_1_CREATETREE_INVOKEMETHOD(
x0[3] + -1)
(4):
22017_1_CREATETREE_INVOKEMETHOD(
x0[4]) →
25776_1_CREATETREE_INVOKEMETHOD(
25776_0_createNode_New,
x0[4])
(1) -> (4), if ((x0[1] + -1 →* x0[4]))
(3) -> (4), if ((x0[3] + -1 →* x0[4]))
The set Q consists of the following terms:
25776_0_createNode_New25776_1_createTree_InvokeMethod(
2813_0_createNode_InvokeMethod,
x0)
25776_1_createTree_InvokeMethod(
2933_0_createNode_InvokeMethod,
x0)
2282_1_createNode_InvokeMethod
(12) IDependencyGraphProof (EQUIVALENT transformation)
The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 3 less nodes.
(13) TRUE
(14) Obligation:
IDP problem:
The following function symbols are pre-defined:
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
| ~ | Bwxor: (Integer, Integer) -> Integer |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
The following domains are used:
none
The ITRS R consists of the following rules:
4679_0_flatten_NULL(
java.lang.Object(
x0),
NULL) →
4983_0_flatten_Return4679_0_flatten_NULL(
NULL,
NULL) →
4985_0_flatten_ReturnThe integer pair graph contains the following rules and edges:
(0):
4679_0_FLATTEN_NULL(
x0[0],
java.lang.Object(
TreeList(
java.lang.Object(
Tree(
x1[0],
x2[0],
x3[0])),
x4[0]))) →
4679_0_FLATTEN_NULL(
x0[0],
java.lang.Object(
TreeList(
x2[0],
java.lang.Object(
TreeList(
x3[0],
x4[0])))))
(1):
4679_0_FLATTEN_NULL(
x0[1],
java.lang.Object(
TreeList(
NULL,
x1[1]))) →
4679_0_FLATTEN_NULL(
x0[1],
x1[1])
(2):
4679_0_FLATTEN_NULL(
java.lang.Object(
TreeList(
java.lang.Object(
Tree(
x0[2],
x1[2],
x2[2])),
x3[2])),
java.lang.Object(
TreeList(
java.lang.Object(
Tree(
x0[2],
x1[2],
x2[2])),
x3[2]))) →
4679_0_FLATTEN_NULL(
java.lang.Object(
TreeList(
x2[2],
x3[2])),
java.lang.Object(
TreeList(
x1[2],
java.lang.Object(
TreeList(
x2[2],
x3[2])))))
(3):
4679_0_FLATTEN_NULL(
java.lang.Object(
TreeList(
NULL,
x0[3])),
java.lang.Object(
TreeList(
NULL,
x0[3]))) →
4679_0_FLATTEN_NULL(
java.lang.Object(
TreeList(
NULL,
x0[3])),
x0[3])
(0) -> (0), if ((x0[0] →* x0[0]')∧(java.lang.Object(TreeList(x2[0], java.lang.Object(TreeList(x3[0], x4[0])))) →* java.lang.Object(TreeList(java.lang.Object(Tree(x1[0]', x2[0]', x3[0]')), x4[0]'))))
(0) -> (1), if ((x0[0] →* x0[1])∧(java.lang.Object(TreeList(x2[0], java.lang.Object(TreeList(x3[0], x4[0])))) →* java.lang.Object(TreeList(NULL, x1[1]))))
(0) -> (2), if ((x0[0] →* java.lang.Object(TreeList(java.lang.Object(Tree(x0[2], x1[2], x2[2])), x3[2])))∧(java.lang.Object(TreeList(x2[0], java.lang.Object(TreeList(x3[0], x4[0])))) →* java.lang.Object(TreeList(java.lang.Object(Tree(x0[2], x1[2], x2[2])), x3[2]))))
(0) -> (3), if ((x0[0] →* java.lang.Object(TreeList(NULL, x0[3])))∧(java.lang.Object(TreeList(x2[0], java.lang.Object(TreeList(x3[0], x4[0])))) →* java.lang.Object(TreeList(NULL, x0[3]))))
(1) -> (0), if ((x0[1] →* x0[0])∧(x1[1] →* java.lang.Object(TreeList(java.lang.Object(Tree(x1[0], x2[0], x3[0])), x4[0]))))
(1) -> (1), if ((x0[1] →* x0[1]')∧(x1[1] →* java.lang.Object(TreeList(NULL, x1[1]'))))
(1) -> (2), if ((x0[1] →* java.lang.Object(TreeList(java.lang.Object(Tree(x0[2], x1[2], x2[2])), x3[2])))∧(x1[1] →* java.lang.Object(TreeList(java.lang.Object(Tree(x0[2], x1[2], x2[2])), x3[2]))))
(1) -> (3), if ((x0[1] →* java.lang.Object(TreeList(NULL, x0[3])))∧(x1[1] →* java.lang.Object(TreeList(NULL, x0[3]))))
(2) -> (0), if ((java.lang.Object(TreeList(x2[2], x3[2])) →* x0[0])∧(java.lang.Object(TreeList(x1[2], java.lang.Object(TreeList(x2[2], x3[2])))) →* java.lang.Object(TreeList(java.lang.Object(Tree(x1[0], x2[0], x3[0])), x4[0]))))
(2) -> (1), if ((java.lang.Object(TreeList(x2[2], x3[2])) →* x0[1])∧(java.lang.Object(TreeList(x1[2], java.lang.Object(TreeList(x2[2], x3[2])))) →* java.lang.Object(TreeList(NULL, x1[1]))))
(2) -> (2), if ((java.lang.Object(TreeList(x2[2], x3[2])) →* java.lang.Object(TreeList(java.lang.Object(Tree(x0[2]', x1[2]', x2[2]')), x3[2]')))∧(java.lang.Object(TreeList(x1[2], java.lang.Object(TreeList(x2[2], x3[2])))) →* java.lang.Object(TreeList(java.lang.Object(Tree(x0[2]', x1[2]', x2[2]')), x3[2]'))))
(2) -> (3), if ((java.lang.Object(TreeList(x2[2], x3[2])) →* java.lang.Object(TreeList(NULL, x0[3])))∧(java.lang.Object(TreeList(x1[2], java.lang.Object(TreeList(x2[2], x3[2])))) →* java.lang.Object(TreeList(NULL, x0[3]))))
(3) -> (0), if ((java.lang.Object(TreeList(NULL, x0[3])) →* x0[0])∧(x0[3] →* java.lang.Object(TreeList(java.lang.Object(Tree(x1[0], x2[0], x3[0])), x4[0]))))
(3) -> (1), if ((java.lang.Object(TreeList(NULL, x0[3])) →* x0[1])∧(x0[3] →* java.lang.Object(TreeList(NULL, x1[1]))))
(3) -> (2), if ((java.lang.Object(TreeList(NULL, x0[3])) →* java.lang.Object(TreeList(java.lang.Object(Tree(x0[2], x1[2], x2[2])), x3[2])))∧(x0[3] →* java.lang.Object(TreeList(java.lang.Object(Tree(x0[2], x1[2], x2[2])), x3[2]))))
(3) -> (3), if ((java.lang.Object(TreeList(NULL, x0[3])) →* java.lang.Object(TreeList(NULL, x0[3]')))∧(x0[3] →* java.lang.Object(TreeList(NULL, x0[3]'))))
The set Q consists of the following terms:
4679_0_flatten_NULL(
java.lang.Object(
x0),
NULL)
4679_0_flatten_NULL(
NULL,
NULL)
(15) IDPtoQDPProof (SOUND transformation)
Represented integers and predefined function symbols by Terms
(16) Obligation:
Q DP problem:
The TRS P consists of the following rules:
4679_0_FLATTEN_NULL(x0[0], java.lang.Object(TreeList(java.lang.Object(Tree(x1[0], x2[0], x3[0])), x4[0]))) → 4679_0_FLATTEN_NULL(x0[0], java.lang.Object(TreeList(x2[0], java.lang.Object(TreeList(x3[0], x4[0])))))
4679_0_FLATTEN_NULL(x0[1], java.lang.Object(TreeList(NULL, x1[1]))) → 4679_0_FLATTEN_NULL(x0[1], x1[1])
4679_0_FLATTEN_NULL(java.lang.Object(TreeList(java.lang.Object(Tree(x0[2], x1[2], x2[2])), x3[2])), java.lang.Object(TreeList(java.lang.Object(Tree(x0[2], x1[2], x2[2])), x3[2]))) → 4679_0_FLATTEN_NULL(java.lang.Object(TreeList(x2[2], x3[2])), java.lang.Object(TreeList(x1[2], java.lang.Object(TreeList(x2[2], x3[2])))))
4679_0_FLATTEN_NULL(java.lang.Object(TreeList(NULL, x0[3])), java.lang.Object(TreeList(NULL, x0[3]))) → 4679_0_FLATTEN_NULL(java.lang.Object(TreeList(NULL, x0[3])), x0[3])
The TRS R consists of the following rules:
4679_0_flatten_NULL(java.lang.Object(x0), NULL) → 4983_0_flatten_Return
4679_0_flatten_NULL(NULL, NULL) → 4985_0_flatten_Return
The set Q consists of the following terms:
4679_0_flatten_NULL(java.lang.Object(x0), NULL)
4679_0_flatten_NULL(NULL, NULL)
We have to consider all minimal (P,Q,R)-chains.
(17) UsableRulesProof (EQUIVALENT transformation)
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R.
(18) Obligation:
Q DP problem:
The TRS P consists of the following rules:
4679_0_FLATTEN_NULL(x0[0], java.lang.Object(TreeList(java.lang.Object(Tree(x1[0], x2[0], x3[0])), x4[0]))) → 4679_0_FLATTEN_NULL(x0[0], java.lang.Object(TreeList(x2[0], java.lang.Object(TreeList(x3[0], x4[0])))))
4679_0_FLATTEN_NULL(x0[1], java.lang.Object(TreeList(NULL, x1[1]))) → 4679_0_FLATTEN_NULL(x0[1], x1[1])
4679_0_FLATTEN_NULL(java.lang.Object(TreeList(java.lang.Object(Tree(x0[2], x1[2], x2[2])), x3[2])), java.lang.Object(TreeList(java.lang.Object(Tree(x0[2], x1[2], x2[2])), x3[2]))) → 4679_0_FLATTEN_NULL(java.lang.Object(TreeList(x2[2], x3[2])), java.lang.Object(TreeList(x1[2], java.lang.Object(TreeList(x2[2], x3[2])))))
4679_0_FLATTEN_NULL(java.lang.Object(TreeList(NULL, x0[3])), java.lang.Object(TreeList(NULL, x0[3]))) → 4679_0_FLATTEN_NULL(java.lang.Object(TreeList(NULL, x0[3])), x0[3])
R is empty.
The set Q consists of the following terms:
4679_0_flatten_NULL(java.lang.Object(x0), NULL)
4679_0_flatten_NULL(NULL, NULL)
We have to consider all minimal (P,Q,R)-chains.
(19) QReductionProof (EQUIVALENT transformation)
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN].
4679_0_flatten_NULL(java.lang.Object(x0), NULL)
4679_0_flatten_NULL(NULL, NULL)
(20) Obligation:
Q DP problem:
The TRS P consists of the following rules:
4679_0_FLATTEN_NULL(x0[0], java.lang.Object(TreeList(java.lang.Object(Tree(x1[0], x2[0], x3[0])), x4[0]))) → 4679_0_FLATTEN_NULL(x0[0], java.lang.Object(TreeList(x2[0], java.lang.Object(TreeList(x3[0], x4[0])))))
4679_0_FLATTEN_NULL(x0[1], java.lang.Object(TreeList(NULL, x1[1]))) → 4679_0_FLATTEN_NULL(x0[1], x1[1])
4679_0_FLATTEN_NULL(java.lang.Object(TreeList(java.lang.Object(Tree(x0[2], x1[2], x2[2])), x3[2])), java.lang.Object(TreeList(java.lang.Object(Tree(x0[2], x1[2], x2[2])), x3[2]))) → 4679_0_FLATTEN_NULL(java.lang.Object(TreeList(x2[2], x3[2])), java.lang.Object(TreeList(x1[2], java.lang.Object(TreeList(x2[2], x3[2])))))
4679_0_FLATTEN_NULL(java.lang.Object(TreeList(NULL, x0[3])), java.lang.Object(TreeList(NULL, x0[3]))) → 4679_0_FLATTEN_NULL(java.lang.Object(TreeList(NULL, x0[3])), x0[3])
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
(21) UsableRulesReductionPairsProof (EQUIVALENT transformation)
By using the usable rules with reduction pair processor [LPAR04] with a polynomial ordering [POLO], all dependency pairs and the corresponding usable rules [FROCOS05] can be oriented non-strictly. All non-usable rules are removed, and those dependency pairs and usable rules that have been oriented strictly or contain non-usable symbols in their left-hand side are removed as well.
The following dependency pairs can be deleted:
4679_0_FLATTEN_NULL(x0[0], java.lang.Object(TreeList(java.lang.Object(Tree(x1[0], x2[0], x3[0])), x4[0]))) → 4679_0_FLATTEN_NULL(x0[0], java.lang.Object(TreeList(x2[0], java.lang.Object(TreeList(x3[0], x4[0])))))
4679_0_FLATTEN_NULL(x0[1], java.lang.Object(TreeList(NULL, x1[1]))) → 4679_0_FLATTEN_NULL(x0[1], x1[1])
4679_0_FLATTEN_NULL(java.lang.Object(TreeList(java.lang.Object(Tree(x0[2], x1[2], x2[2])), x3[2])), java.lang.Object(TreeList(java.lang.Object(Tree(x0[2], x1[2], x2[2])), x3[2]))) → 4679_0_FLATTEN_NULL(java.lang.Object(TreeList(x2[2], x3[2])), java.lang.Object(TreeList(x1[2], java.lang.Object(TreeList(x2[2], x3[2])))))
4679_0_FLATTEN_NULL(java.lang.Object(TreeList(NULL, x0[3])), java.lang.Object(TreeList(NULL, x0[3]))) → 4679_0_FLATTEN_NULL(java.lang.Object(TreeList(NULL, x0[3])), x0[3])
No rules are removed from R.
Used ordering: POLO with Polynomial interpretation [POLO]:
POL(4679_0_FLATTEN_NULL(x1, x2)) = x1 + 2·x2
POL(NULL) = 0
POL(Tree(x1, x2, x3)) = 2 + x1 + x2 + 2·x3
POL(TreeList(x1, x2)) = 2 + x1 + x2
POL(java.lang.Object(x1)) = 1 + x1
(22) Obligation:
Q DP problem:
P is empty.
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
(23) PisEmptyProof (EQUIVALENT transformation)
The TRS P is empty. Hence, there is no (P,Q,R) chain.
(24) YES
(25) Obligation:
IDP problem:
The following function symbols are pre-defined:
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
| ~ | Bwxor: (Integer, Integer) -> Integer |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
The following domains are used:
Integer, Boolean
The ITRS R consists of the following rules:
7513_0_createTree_InvokeMethod →
1569_1_createTree_InvokeMethod(
1569_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
7513_0_createTree_InvokeMethod →
1588_1_createTree_InvokeMethod(
1588_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
7513_0_createTree_InvokeMethod →
1589_1_createTree_InvokeMethod(
1589_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
7513_1_main_InvokeMethod(
2085_0_createTree_InvokeMethod,
x1) →
7727_0_main_InvokeMethod(
x0,
x1)
7513_1_main_InvokeMethod(
2140_0_createTree_InvokeMethod,
x1) →
7727_0_main_InvokeMethod(
x0,
x1)
7513_1_main_InvokeMethod(
2274_0_createTree_InvokeMethod,
x1) →
7727_0_main_InvokeMethod(
x0,
x1)
7513_1_main_InvokeMethod(
2971_0_createTree_InvokeMethod(
x1),
x3) →
7727_0_main_InvokeMethod(
x2,
x3)
7513_1_main_InvokeMethod(
24353_0_createTree_InvokeMethod(
x0),
x3) →
7727_0_main_InvokeMethod(
x2,
x3)
7513_1_main_InvokeMethod(
24697_0_createTree_InvokeMethod(
x0),
x3) →
7727_0_main_InvokeMethod(
x2,
x3)
7513_1_main_InvokeMethod(
25508_0_createTree_InvokeMethod(
x1),
x3) →
7727_0_main_InvokeMethod(
x2,
x3)
7513_1_main_InvokeMethod(
25572_0_createTree_InvokeMethod(
x1),
x3) →
7727_0_main_InvokeMethod(
x2,
x3)
7513_1_main_InvokeMethod(
25664_0_createTree_InvokeMethod(
x1),
x3) →
7727_0_main_InvokeMethod(
x2,
x3)
7513_1_main_InvokeMethod(
25727_0_createTree_InvokeMethod(
x1),
x3) →
7727_0_main_InvokeMethod(
x2,
x3)
7513_1_main_InvokeMethod(
25886_0_createTree_InvokeMethod(
x1),
x3) →
7727_0_main_InvokeMethod(
x2,
x3)
7513_1_main_InvokeMethod(
26060_0_createTree_InvokeMethod(
x1),
x3) →
7727_0_main_InvokeMethod(
x2,
x3)
7513_1_main_InvokeMethod(
26213_0_createTree_InvokeMethod(
x1),
x3) →
7727_0_main_InvokeMethod(
x2,
x3)
7513_1_main_InvokeMethod(
26307_0_createTree_InvokeMethod(
x1),
x3) →
7727_0_main_InvokeMethod(
x2,
x3)
7513_1_main_InvokeMethod(
26395_0_createTree_InvokeMethod(
x0),
x3) →
7727_0_main_InvokeMethod(
x2,
x3)
1589_1_createTree_InvokeMethod(
1589_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2)) →
Cond_1589_1_createTree_InvokeMethod(
x2 >= x0,
1589_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
Cond_1589_1_createTree_InvokeMethod(
TRUE,
1589_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2)) →
2140_0_createTree_InvokeMethod1588_1_createTree_InvokeMethod(
1588_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2)) →
Cond_1588_1_createTree_InvokeMethod(
x2 >= 0 && x2 < x0,
1588_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
Cond_1588_1_createTree_InvokeMethod(
TRUE,
1588_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2)) →
1663_1_createTree_InvokeMethod(
1663_0_random_IntArithmetic(
x4))
1663_1_createTree_InvokeMethod(
1663_0_random_IntArithmetic(
x0)) →
Cond_1663_1_createTree_InvokeMethod(
x0 >= 0,
1663_0_random_IntArithmetic(
x0))
Cond_1663_1_createTree_InvokeMethod(
TRUE,
1663_0_random_IntArithmetic(
x0)) →
2274_0_createTree_InvokeMethod1663_1_createTree_InvokeMethod(
1663_0_random_IntArithmetic(
x1)) →
Cond_1663_1_createTree_InvokeMethod1(
x1 >= 0,
1663_0_random_IntArithmetic(
x1))
Cond_1663_1_createTree_InvokeMethod1(
TRUE,
1663_0_random_IntArithmetic(
x1)) →
1902_0_createTree_NE(
x3)
1902_0_createTree_NE(
0) →
1974_0_createTree_Return1902_0_createTree_NE(
x0) →
Cond_1902_0_createTree_NE(
!(
x0 = 0),
x0)
Cond_1902_0_createTree_NE(
TRUE,
x0) →
1969_1_createTree_InvokeMethod(
2798_0_createNode_InvokeMethod,
x0)
1969_1_createTree_InvokeMethod(
2813_0_createNode_InvokeMethod,
x0) →
2971_0_createTree_InvokeMethod(
x0)
1969_1_createTree_InvokeMethod(
2933_0_createNode_InvokeMethod,
x0) →
2971_0_createTree_InvokeMethod(
x0)
1969_1_createTree_InvokeMethod(
2619_0_createNode_Return,
x0) →
21887_0_createTree_LE(
x0)
21887_0_createTree_LE(
0) →
21908_0_createTree_Return21887_0_createTree_LE(
x0) →
Cond_21887_0_createTree_LE(
x0 > 0,
x0)
Cond_21887_0_createTree_LE(
TRUE,
x0) →
21978_1_createTree_InvokeMethod(
21978_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x2,
x3)),
x4))
21887_0_createTree_LE(
x0) →
Cond_21887_0_createTree_LE1(
x0 > 0,
x0)
Cond_21887_0_createTree_LE1(
TRUE,
x0) →
22017_1_createTree_InvokeMethod(
22017_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x2,
x3)),
x4),
x0)
21887_0_createTree_LE(
x0) →
Cond_21887_0_createTree_LE2(
x0 > 0,
x0)
Cond_21887_0_createTree_LE2(
TRUE,
x0) →
22030_1_createTree_InvokeMethod(
22030_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x2,
x3)),
x4))
22030_1_createTree_InvokeMethod(
22030_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2)) →
Cond_22030_1_createTree_InvokeMethod(
x2 >= x0,
22030_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
Cond_22030_1_createTree_InvokeMethod(
TRUE,
22030_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2)) →
24697_0_createTree_InvokeMethod(
x3)
22017_1_createTree_InvokeMethod(
22017_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2),
x3) →
Cond_22017_1_createTree_InvokeMethod(
x2 >= 0 && x2 < x0,
22017_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2),
x3)
Cond_22017_1_createTree_InvokeMethod(
TRUE,
22017_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2),
x3) →
22181_1_createTree_InvokeMethod(
22181_0_random_IntArithmetic(
x6),
x3)
22181_1_createTree_InvokeMethod(
22181_0_random_IntArithmetic(
x0),
x2) →
Cond_22181_1_createTree_InvokeMethod(
x0 >= 0,
22181_0_random_IntArithmetic(
x0),
x2)
Cond_22181_1_createTree_InvokeMethod(
TRUE,
22181_0_random_IntArithmetic(
x0),
x2) →
26395_0_createTree_InvokeMethod(
x2)
22181_1_createTree_InvokeMethod(
22181_0_random_IntArithmetic(
x1),
x3) →
Cond_22181_1_createTree_InvokeMethod1(
x1 >= 0,
22181_0_random_IntArithmetic(
x1),
x3)
Cond_22181_1_createTree_InvokeMethod1(
TRUE,
22181_0_random_IntArithmetic(
x1),
x3) →
23403_0_createTree_LE(
x3,
x5)
23403_0_createTree_LE(
x0,
x1) →
Cond_23403_0_createTree_LE(
x1 > 0,
x0,
x1)
Cond_23403_0_createTree_LE(
TRUE,
x0,
x1) →
25321_1_createTree_InvokeMethod(
25328_0_createNode_InvokeMethod,
x0)
25321_1_createTree_InvokeMethod(
2813_0_createNode_InvokeMethod,
x0) →
25727_0_createTree_InvokeMethod(
x0)
25321_1_createTree_InvokeMethod(
2933_0_createNode_InvokeMethod,
x0) →
25727_0_createTree_InvokeMethod(
x0)
25321_1_createTree_InvokeMethod(
2619_0_createNode_Return,
x0) →
Cond_25321_1_createTree_InvokeMethod(
x0 > 0,
2619_0_createNode_Return,
x0)
Cond_25321_1_createTree_InvokeMethod(
TRUE,
2619_0_createNode_Return,
x0) →
21887_0_createTree_LE(
x0 + -1)
1902_0_createTree_NE(
x0) →
Cond_1902_0_createTree_NE1(
!(
x0 = 0),
x0)
Cond_1902_0_createTree_NE1(
TRUE,
x0) →
1969_1_createTree_InvokeMethod(
2282_1_createNode_InvokeMethod(
2282_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x1,
x2)),
x3)),
x0)
23403_0_createTree_LE(
x0,
x1) →
Cond_23403_0_createTree_LE1(
x1 > 0,
x0,
x1)
Cond_23403_0_createTree_LE1(
TRUE,
x0,
x1) →
25321_1_createTree_InvokeMethod(
2282_1_createNode_InvokeMethod(
2282_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x2,
x3)),
x4)),
x0)
2282_1_createNode_InvokeMethod(
2282_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2)) →
Cond_2282_1_createNode_InvokeMethod(
x2 >= x0,
2282_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
Cond_2282_1_createNode_InvokeMethod(
TRUE,
2282_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2)) →
2813_0_createNode_InvokeMethod2282_1_createNode_InvokeMethod(
2282_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2)) →
Cond_2282_1_createNode_InvokeMethod1(
x2 >= 1 && x2 < x0,
2282_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
Cond_2282_1_createNode_InvokeMethod1(
TRUE,
2282_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2)) →
2373_1_createNode_InvokeMethod(
2373_0_random_IntArithmetic(
x4))
2373_1_createNode_InvokeMethod(
2373_0_random_IntArithmetic(
x0)) →
Cond_2373_1_createNode_InvokeMethod(
x0 > 0,
2373_0_random_IntArithmetic(
x0))
Cond_2373_1_createNode_InvokeMethod(
TRUE,
2373_0_random_IntArithmetic(
x0)) →
2933_0_createNode_InvokeMethod2373_1_createNode_InvokeMethod(
2373_0_random_IntArithmetic(
x1)) →
Cond_2373_1_createNode_InvokeMethod1(
x1 > 0,
2373_0_random_IntArithmetic(
x1))
Cond_2373_1_createNode_InvokeMethod1(
TRUE,
2373_0_random_IntArithmetic(
x1)) →
2619_0_createNode_Return2282_1_createNode_InvokeMethod(
2282_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2)) →
Cond_2282_1_createNode_InvokeMethod2(
x2 <= -1,
2282_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
Cond_2282_1_createNode_InvokeMethod2(
TRUE,
2282_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2)) →
2773_0_createNode_InvokeMethod23403_0_createTree_LE(
x0,
x1) →
Cond_23403_0_createTree_LE2(
x1 > 0 && x0 > 0,
x0,
x1)
Cond_23403_0_createTree_LE2(
TRUE,
x0,
x1) →
21887_0_createTree_LE(
x0 + -1)
23403_0_createTree_LE(
x0,
x1) →
Cond_23403_0_createTree_LE3(
x1 > 0,
x0,
x1)
Cond_23403_0_createTree_LE3(
TRUE,
x0,
x1) →
25321_1_createTree_InvokeMethod(
25676_0_createNode_InvokeMethod,
x0)
25321_1_createTree_InvokeMethod(
2813_0_createNode_InvokeMethod,
x0) →
26060_0_createTree_InvokeMethod(
x0)
25321_1_createTree_InvokeMethod(
2933_0_createNode_InvokeMethod,
x0) →
26060_0_createTree_InvokeMethod(
x0)
23403_0_createTree_LE(
x0,
x1) →
Cond_23403_0_createTree_LE5(
x1 > 0,
x0,
x1)
Cond_23403_0_createTree_LE5(
TRUE,
x0,
x1) →
25668_0_createTree_Store(
x0)
23403_0_createTree_LE(
x0,
x1) →
Cond_23403_0_createTree_LE6(
x1 > 0,
x0,
x1)
Cond_23403_0_createTree_LE6(
TRUE,
x0,
x1) →
25321_1_createTree_InvokeMethod(
25294_0_createNode_InvokeMethod,
x0)
25321_1_createTree_InvokeMethod(
2813_0_createNode_InvokeMethod,
x0) →
25664_0_createTree_InvokeMethod(
x0)
25321_1_createTree_InvokeMethod(
2933_0_createNode_InvokeMethod,
x0) →
25664_0_createTree_InvokeMethod(
x0)
23403_0_createTree_LE(
x0,
x1) →
Cond_23403_0_createTree_LE9(
x1 > 0,
x0,
x1)
Cond_23403_0_createTree_LE9(
TRUE,
x0,
x1) →
25321_1_createTree_InvokeMethod(
25963_0_createNode_InvokeMethod,
x0)
25321_1_createTree_InvokeMethod(
2813_0_createNode_InvokeMethod,
x0) →
26307_0_createTree_InvokeMethod(
x0)
25321_1_createTree_InvokeMethod(
2933_0_createNode_InvokeMethod,
x0) →
26307_0_createTree_InvokeMethod(
x0)
23403_0_createTree_LE(
x0,
0) →
25321_1_createTree_InvokeMethod(
25211_0_createNode_InvokeMethod,
x0)
23403_0_createTree_LE(
x0,
0) →
25321_1_createTree_InvokeMethod(
2282_1_createNode_InvokeMethod(
2282_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x2,
x3)),
x4)),
x0)
25321_1_createTree_InvokeMethod(
2813_0_createNode_InvokeMethod,
x0) →
25572_0_createTree_InvokeMethod(
x0)
25321_1_createTree_InvokeMethod(
2933_0_createNode_InvokeMethod,
x0) →
25572_0_createTree_InvokeMethod(
x0)
23403_0_createTree_LE(
x0,
0) →
Cond_23403_0_createTree_LE11(
x0 > 0,
x0,
0)
Cond_23403_0_createTree_LE11(
TRUE,
x0,
0) →
21887_0_createTree_LE(
x0 + -1)
23403_0_createTree_LE(
x0,
0) →
25321_1_createTree_InvokeMethod(
25519_0_createNode_InvokeMethod,
x0)
25321_1_createTree_InvokeMethod(
2813_0_createNode_InvokeMethod,
x0) →
25886_0_createTree_InvokeMethod(
x0)
25321_1_createTree_InvokeMethod(
2933_0_createNode_InvokeMethod,
x0) →
25886_0_createTree_InvokeMethod(
x0)
23403_0_createTree_LE(
x0,
0) →
25668_0_createTree_Store(
x0)
23403_0_createTree_LE(
x0,
0) →
25321_1_createTree_InvokeMethod(
25183_0_createNode_InvokeMethod,
x0)
25321_1_createTree_InvokeMethod(
2813_0_createNode_InvokeMethod,
x0) →
25508_0_createTree_InvokeMethod(
x0)
25321_1_createTree_InvokeMethod(
2933_0_createNode_InvokeMethod,
x0) →
25508_0_createTree_InvokeMethod(
x0)
23403_0_createTree_LE(
x0,
0) →
25321_1_createTree_InvokeMethod(
25795_0_createNode_InvokeMethod,
x0)
25321_1_createTree_InvokeMethod(
2813_0_createNode_InvokeMethod,
x0) →
26213_0_createTree_InvokeMethod(
x0)
25321_1_createTree_InvokeMethod(
2933_0_createNode_InvokeMethod,
x0) →
26213_0_createTree_InvokeMethod(
x0)
21978_1_createTree_InvokeMethod(
21978_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2)) →
Cond_21978_1_createTree_InvokeMethod(
x2 <= -1,
21978_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
Cond_21978_1_createTree_InvokeMethod(
TRUE,
21978_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2)) →
24353_0_createTree_InvokeMethod(
x3)
1569_1_createTree_InvokeMethod(
1569_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2)) →
Cond_1569_1_createTree_InvokeMethod(
x2 <= -1,
1569_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
Cond_1569_1_createTree_InvokeMethod(
TRUE,
1569_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2)) →
2085_0_createTree_InvokeMethod25668_0_createTree_Store(
x0) →
Cond_25668_0_createTree_Store(
x0 > 0,
x0)
Cond_25668_0_createTree_Store(
TRUE,
x0) →
21887_0_createTree_LE(
x0 + -1)
The integer pair graph contains the following rules and edges:
(0):
7513_1_MAIN_INVOKEMETHOD(
1974_0_createTree_Return,
x2[0]) →
COND_7513_1_MAIN_INVOKEMETHOD(
x2[0] > 0 && 0 < x2[0] + -1,
1974_0_createTree_Return,
x2[0])
(1):
COND_7513_1_MAIN_INVOKEMETHOD(
TRUE,
1974_0_createTree_Return,
x2[1]) →
7513_1_MAIN_INVOKEMETHOD(
7513_0_createTree_InvokeMethod,
x2[1] + -1)
(2):
7513_1_MAIN_INVOKEMETHOD(
21908_0_createTree_Return,
x1[2]) →
COND_7513_1_MAIN_INVOKEMETHOD1(
x1[2] > 0 && 0 < x1[2] + -1,
21908_0_createTree_Return,
x1[2])
(3):
COND_7513_1_MAIN_INVOKEMETHOD1(
TRUE,
21908_0_createTree_Return,
x1[3]) →
7513_1_MAIN_INVOKEMETHOD(
7513_0_createTree_InvokeMethod,
x1[3] + -1)
(0) -> (1), if ((x2[0] > 0 && 0 < x2[0] + -1 →* TRUE)∧(x2[0] →* x2[1]))
(1) -> (0), if ((7513_0_createTree_InvokeMethod →* 1974_0_createTree_Return)∧(x2[1] + -1 →* x2[0]))
(1) -> (2), if ((7513_0_createTree_InvokeMethod →* 21908_0_createTree_Return)∧(x2[1] + -1 →* x1[2]))
(2) -> (3), if ((x1[2] > 0 && 0 < x1[2] + -1 →* TRUE)∧(x1[2] →* x1[3]))
(3) -> (0), if ((7513_0_createTree_InvokeMethod →* 1974_0_createTree_Return)∧(x1[3] + -1 →* x2[0]))
(3) -> (2), if ((7513_0_createTree_InvokeMethod →* 21908_0_createTree_Return)∧(x1[3] + -1 →* x1[2]))
The set Q consists of the following terms:
7513_0_createTree_InvokeMethod7513_1_main_InvokeMethod(
2085_0_createTree_InvokeMethod,
x0)
7513_1_main_InvokeMethod(
2140_0_createTree_InvokeMethod,
x0)
7513_1_main_InvokeMethod(
2274_0_createTree_InvokeMethod,
x0)
7513_1_main_InvokeMethod(
2971_0_createTree_InvokeMethod(
x0),
x1)
7513_1_main_InvokeMethod(
24353_0_createTree_InvokeMethod(
x0),
x1)
7513_1_main_InvokeMethod(
24697_0_createTree_InvokeMethod(
x0),
x1)
7513_1_main_InvokeMethod(
25508_0_createTree_InvokeMethod(
x0),
x1)
7513_1_main_InvokeMethod(
25572_0_createTree_InvokeMethod(
x0),
x1)
7513_1_main_InvokeMethod(
25664_0_createTree_InvokeMethod(
x0),
x1)
7513_1_main_InvokeMethod(
25727_0_createTree_InvokeMethod(
x0),
x1)
7513_1_main_InvokeMethod(
25886_0_createTree_InvokeMethod(
x0),
x1)
7513_1_main_InvokeMethod(
26060_0_createTree_InvokeMethod(
x0),
x1)
7513_1_main_InvokeMethod(
26213_0_createTree_InvokeMethod(
x0),
x1)
7513_1_main_InvokeMethod(
26307_0_createTree_InvokeMethod(
x0),
x1)
7513_1_main_InvokeMethod(
26395_0_createTree_InvokeMethod(
x0),
x1)
1589_1_createTree_InvokeMethod(
1589_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
Cond_1589_1_createTree_InvokeMethod(
TRUE,
1589_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
1588_1_createTree_InvokeMethod(
1588_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
Cond_1588_1_createTree_InvokeMethod(
TRUE,
1588_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
1663_1_createTree_InvokeMethod(
1663_0_random_IntArithmetic(
x0))
Cond_1663_1_createTree_InvokeMethod(
TRUE,
1663_0_random_IntArithmetic(
x0))
Cond_1663_1_createTree_InvokeMethod1(
TRUE,
1663_0_random_IntArithmetic(
x0))
1902_0_createTree_NE(
x0)
Cond_1902_0_createTree_NE(
TRUE,
x0)
1969_1_createTree_InvokeMethod(
2813_0_createNode_InvokeMethod,
x0)
1969_1_createTree_InvokeMethod(
2933_0_createNode_InvokeMethod,
x0)
1969_1_createTree_InvokeMethod(
2619_0_createNode_Return,
x0)
21887_0_createTree_LE(
x0)
Cond_21887_0_createTree_LE(
TRUE,
x0)
Cond_21887_0_createTree_LE1(
TRUE,
x0)
Cond_21887_0_createTree_LE2(
TRUE,
x0)
22030_1_createTree_InvokeMethod(
22030_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
Cond_22030_1_createTree_InvokeMethod(
TRUE,
22030_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
22017_1_createTree_InvokeMethod(
22017_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2),
x3)
Cond_22017_1_createTree_InvokeMethod(
TRUE,
22017_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2),
x3)
22181_1_createTree_InvokeMethod(
22181_0_random_IntArithmetic(
x0),
x1)
Cond_22181_1_createTree_InvokeMethod(
TRUE,
22181_0_random_IntArithmetic(
x0),
x1)
Cond_22181_1_createTree_InvokeMethod1(
TRUE,
22181_0_random_IntArithmetic(
x0),
x1)
23403_0_createTree_LE(
x0,
x1)
Cond_23403_0_createTree_LE(
TRUE,
x0,
x1)
25321_1_createTree_InvokeMethod(
2813_0_createNode_InvokeMethod,
x0)
25321_1_createTree_InvokeMethod(
2933_0_createNode_InvokeMethod,
x0)
25321_1_createTree_InvokeMethod(
2619_0_createNode_Return,
x0)
Cond_25321_1_createTree_InvokeMethod(
TRUE,
2619_0_createNode_Return,
x0)
Cond_1902_0_createTree_NE1(
TRUE,
x0)
Cond_23403_0_createTree_LE1(
TRUE,
x0,
x1)
2282_1_createNode_InvokeMethod(
2282_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
Cond_2282_1_createNode_InvokeMethod(
TRUE,
2282_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
Cond_2282_1_createNode_InvokeMethod1(
TRUE,
2282_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
2373_1_createNode_InvokeMethod(
2373_0_random_IntArithmetic(
x0))
Cond_2373_1_createNode_InvokeMethod(
TRUE,
2373_0_random_IntArithmetic(
x0))
Cond_2373_1_createNode_InvokeMethod1(
TRUE,
2373_0_random_IntArithmetic(
x0))
Cond_2282_1_createNode_InvokeMethod2(
TRUE,
2282_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
Cond_23403_0_createTree_LE2(
TRUE,
x0,
x1)
Cond_23403_0_createTree_LE3(
TRUE,
x0,
x1)
Cond_23403_0_createTree_LE5(
TRUE,
x0,
x1)
Cond_23403_0_createTree_LE6(
TRUE,
x0,
x1)
Cond_23403_0_createTree_LE9(
TRUE,
x0,
x1)
Cond_23403_0_createTree_LE11(
TRUE,
x0,
0)
21978_1_createTree_InvokeMethod(
21978_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
Cond_21978_1_createTree_InvokeMethod(
TRUE,
21978_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
1569_1_createTree_InvokeMethod(
1569_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
Cond_1569_1_createTree_InvokeMethod(
TRUE,
1569_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
25668_0_createTree_Store(
x0)
Cond_25668_0_createTree_Store(
TRUE,
x0)
(26) IDPNonInfProof (SOUND transformation)
The constraints were generated the following way:
The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps:
Note that
final constraints are written in
bold face.
For Pair
7513_1_MAIN_INVOKEMETHOD(
1974_0_createTree_Return,
x2) →
COND_7513_1_MAIN_INVOKEMETHOD(
&&(
>(
x2,
0),
<(
0,
+(
x2,
-1))),
1974_0_createTree_Return,
x2) the following chains were created:
- We consider the chain 7513_1_MAIN_INVOKEMETHOD(1974_0_createTree_Return, x2[0]) → COND_7513_1_MAIN_INVOKEMETHOD(&&(>(x2[0], 0), <(0, +(x2[0], -1))), 1974_0_createTree_Return, x2[0]), COND_7513_1_MAIN_INVOKEMETHOD(TRUE, 1974_0_createTree_Return, x2[1]) → 7513_1_MAIN_INVOKEMETHOD(7513_0_createTree_InvokeMethod, +(x2[1], -1)) which results in the following constraint:
(1) (&&(>(x2[0], 0), <(0, +(x2[0], -1)))=TRUE∧x2[0]=x2[1] ⇒ 7513_1_MAIN_INVOKEMETHOD(1974_0_createTree_Return, x2[0])≥NonInfC∧7513_1_MAIN_INVOKEMETHOD(1974_0_createTree_Return, x2[0])≥COND_7513_1_MAIN_INVOKEMETHOD(&&(>(x2[0], 0), <(0, +(x2[0], -1))), 1974_0_createTree_Return, x2[0])∧(UIncreasing(COND_7513_1_MAIN_INVOKEMETHOD(&&(>(x2[0], 0), <(0, +(x2[0], -1))), 1974_0_createTree_Return, x2[0])), ≥))
We simplified constraint (1) using rules (IV), (IDP_BOOLEAN) which results in the following new constraint:
(2) (>(x2[0], 0)=TRUE∧<(0, +(x2[0], -1))=TRUE ⇒ 7513_1_MAIN_INVOKEMETHOD(1974_0_createTree_Return, x2[0])≥NonInfC∧7513_1_MAIN_INVOKEMETHOD(1974_0_createTree_Return, x2[0])≥COND_7513_1_MAIN_INVOKEMETHOD(&&(>(x2[0], 0), <(0, +(x2[0], -1))), 1974_0_createTree_Return, x2[0])∧(UIncreasing(COND_7513_1_MAIN_INVOKEMETHOD(&&(>(x2[0], 0), <(0, +(x2[0], -1))), 1974_0_createTree_Return, x2[0])), ≥))
We simplified constraint (2) using rule (POLY_CONSTRAINTS) which results in the following new constraint:
(3) (x2[0] + [-1] ≥ 0∧x2[0] + [-2] ≥ 0 ⇒ (UIncreasing(COND_7513_1_MAIN_INVOKEMETHOD(&&(>(x2[0], 0), <(0, +(x2[0], -1))), 1974_0_createTree_Return, x2[0])), ≥)∧[(-1)Bound*bni_146] + [(2)bni_146]x2[0] ≥ 0∧[(-1)bso_147] ≥ 0)
We simplified constraint (3) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:
(4) (x2[0] + [-1] ≥ 0∧x2[0] + [-2] ≥ 0 ⇒ (UIncreasing(COND_7513_1_MAIN_INVOKEMETHOD(&&(>(x2[0], 0), <(0, +(x2[0], -1))), 1974_0_createTree_Return, x2[0])), ≥)∧[(-1)Bound*bni_146] + [(2)bni_146]x2[0] ≥ 0∧[(-1)bso_147] ≥ 0)
We simplified constraint (4) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:
(5) (x2[0] + [-1] ≥ 0∧x2[0] + [-2] ≥ 0 ⇒ (UIncreasing(COND_7513_1_MAIN_INVOKEMETHOD(&&(>(x2[0], 0), <(0, +(x2[0], -1))), 1974_0_createTree_Return, x2[0])), ≥)∧[(-1)Bound*bni_146] + [(2)bni_146]x2[0] ≥ 0∧[(-1)bso_147] ≥ 0)
We simplified constraint (5) using rule (IDP_SMT_SPLIT) which results in the following new constraint:
(6) (x2[0] ≥ 0∧[-1] + x2[0] ≥ 0 ⇒ (UIncreasing(COND_7513_1_MAIN_INVOKEMETHOD(&&(>(x2[0], 0), <(0, +(x2[0], -1))), 1974_0_createTree_Return, x2[0])), ≥)∧[(-1)Bound*bni_146 + (2)bni_146] + [(2)bni_146]x2[0] ≥ 0∧[(-1)bso_147] ≥ 0)
We simplified constraint (6) using rule (IDP_SMT_SPLIT) which results in the following new constraint:
(7) ([1] + x2[0] ≥ 0∧x2[0] ≥ 0 ⇒ (UIncreasing(COND_7513_1_MAIN_INVOKEMETHOD(&&(>(x2[0], 0), <(0, +(x2[0], -1))), 1974_0_createTree_Return, x2[0])), ≥)∧[(-1)Bound*bni_146 + (4)bni_146] + [(2)bni_146]x2[0] ≥ 0∧[(-1)bso_147] ≥ 0)
For Pair
COND_7513_1_MAIN_INVOKEMETHOD(
TRUE,
1974_0_createTree_Return,
x2) →
7513_1_MAIN_INVOKEMETHOD(
7513_0_createTree_InvokeMethod,
+(
x2,
-1)) the following chains were created:
- We consider the chain COND_7513_1_MAIN_INVOKEMETHOD(TRUE, 1974_0_createTree_Return, x2[1]) → 7513_1_MAIN_INVOKEMETHOD(7513_0_createTree_InvokeMethod, +(x2[1], -1)) which results in the following constraint:
(8) (COND_7513_1_MAIN_INVOKEMETHOD(TRUE, 1974_0_createTree_Return, x2[1])≥NonInfC∧COND_7513_1_MAIN_INVOKEMETHOD(TRUE, 1974_0_createTree_Return, x2[1])≥7513_1_MAIN_INVOKEMETHOD(7513_0_createTree_InvokeMethod, +(x2[1], -1))∧(UIncreasing(7513_1_MAIN_INVOKEMETHOD(7513_0_createTree_InvokeMethod, +(x2[1], -1))), ≥))
We simplified constraint (8) using rule (POLY_CONSTRAINTS) which results in the following new constraint:
(9) ((UIncreasing(7513_1_MAIN_INVOKEMETHOD(7513_0_createTree_InvokeMethod, +(x2[1], -1))), ≥)∧[2 + (-1)bso_149] ≥ 0)
We simplified constraint (9) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:
(10) ((UIncreasing(7513_1_MAIN_INVOKEMETHOD(7513_0_createTree_InvokeMethod, +(x2[1], -1))), ≥)∧[2 + (-1)bso_149] ≥ 0)
We simplified constraint (10) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:
(11) ((UIncreasing(7513_1_MAIN_INVOKEMETHOD(7513_0_createTree_InvokeMethod, +(x2[1], -1))), ≥)∧[2 + (-1)bso_149] ≥ 0)
We simplified constraint (11) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:
(12) ((UIncreasing(7513_1_MAIN_INVOKEMETHOD(7513_0_createTree_InvokeMethod, +(x2[1], -1))), ≥)∧0 = 0∧[2 + (-1)bso_149] ≥ 0)
For Pair
7513_1_MAIN_INVOKEMETHOD(
21908_0_createTree_Return,
x1) →
COND_7513_1_MAIN_INVOKEMETHOD1(
&&(
>(
x1,
0),
<(
0,
+(
x1,
-1))),
21908_0_createTree_Return,
x1) the following chains were created:
- We consider the chain 7513_1_MAIN_INVOKEMETHOD(21908_0_createTree_Return, x1[2]) → COND_7513_1_MAIN_INVOKEMETHOD1(&&(>(x1[2], 0), <(0, +(x1[2], -1))), 21908_0_createTree_Return, x1[2]), COND_7513_1_MAIN_INVOKEMETHOD1(TRUE, 21908_0_createTree_Return, x1[3]) → 7513_1_MAIN_INVOKEMETHOD(7513_0_createTree_InvokeMethod, +(x1[3], -1)) which results in the following constraint:
(13) (&&(>(x1[2], 0), <(0, +(x1[2], -1)))=TRUE∧x1[2]=x1[3] ⇒ 7513_1_MAIN_INVOKEMETHOD(21908_0_createTree_Return, x1[2])≥NonInfC∧7513_1_MAIN_INVOKEMETHOD(21908_0_createTree_Return, x1[2])≥COND_7513_1_MAIN_INVOKEMETHOD1(&&(>(x1[2], 0), <(0, +(x1[2], -1))), 21908_0_createTree_Return, x1[2])∧(UIncreasing(COND_7513_1_MAIN_INVOKEMETHOD1(&&(>(x1[2], 0), <(0, +(x1[2], -1))), 21908_0_createTree_Return, x1[2])), ≥))
We simplified constraint (13) using rules (IV), (IDP_BOOLEAN) which results in the following new constraint:
(14) (>(x1[2], 0)=TRUE∧<(0, +(x1[2], -1))=TRUE ⇒ 7513_1_MAIN_INVOKEMETHOD(21908_0_createTree_Return, x1[2])≥NonInfC∧7513_1_MAIN_INVOKEMETHOD(21908_0_createTree_Return, x1[2])≥COND_7513_1_MAIN_INVOKEMETHOD1(&&(>(x1[2], 0), <(0, +(x1[2], -1))), 21908_0_createTree_Return, x1[2])∧(UIncreasing(COND_7513_1_MAIN_INVOKEMETHOD1(&&(>(x1[2], 0), <(0, +(x1[2], -1))), 21908_0_createTree_Return, x1[2])), ≥))
We simplified constraint (14) using rule (POLY_CONSTRAINTS) which results in the following new constraint:
(15) (x1[2] + [-1] ≥ 0∧x1[2] + [-2] ≥ 0 ⇒ (UIncreasing(COND_7513_1_MAIN_INVOKEMETHOD1(&&(>(x1[2], 0), <(0, +(x1[2], -1))), 21908_0_createTree_Return, x1[2])), ≥)∧[(-1)Bound*bni_150] + [(2)bni_150]x1[2] ≥ 0∧[1 + (-1)bso_151] ≥ 0)
We simplified constraint (15) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:
(16) (x1[2] + [-1] ≥ 0∧x1[2] + [-2] ≥ 0 ⇒ (UIncreasing(COND_7513_1_MAIN_INVOKEMETHOD1(&&(>(x1[2], 0), <(0, +(x1[2], -1))), 21908_0_createTree_Return, x1[2])), ≥)∧[(-1)Bound*bni_150] + [(2)bni_150]x1[2] ≥ 0∧[1 + (-1)bso_151] ≥ 0)
We simplified constraint (16) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:
(17) (x1[2] + [-1] ≥ 0∧x1[2] + [-2] ≥ 0 ⇒ (UIncreasing(COND_7513_1_MAIN_INVOKEMETHOD1(&&(>(x1[2], 0), <(0, +(x1[2], -1))), 21908_0_createTree_Return, x1[2])), ≥)∧[(-1)Bound*bni_150] + [(2)bni_150]x1[2] ≥ 0∧[1 + (-1)bso_151] ≥ 0)
We simplified constraint (17) using rule (IDP_SMT_SPLIT) which results in the following new constraint:
(18) (x1[2] ≥ 0∧[-1] + x1[2] ≥ 0 ⇒ (UIncreasing(COND_7513_1_MAIN_INVOKEMETHOD1(&&(>(x1[2], 0), <(0, +(x1[2], -1))), 21908_0_createTree_Return, x1[2])), ≥)∧[(-1)Bound*bni_150 + (2)bni_150] + [(2)bni_150]x1[2] ≥ 0∧[1 + (-1)bso_151] ≥ 0)
We simplified constraint (18) using rule (IDP_SMT_SPLIT) which results in the following new constraint:
(19) ([1] + x1[2] ≥ 0∧x1[2] ≥ 0 ⇒ (UIncreasing(COND_7513_1_MAIN_INVOKEMETHOD1(&&(>(x1[2], 0), <(0, +(x1[2], -1))), 21908_0_createTree_Return, x1[2])), ≥)∧[(-1)Bound*bni_150 + (4)bni_150] + [(2)bni_150]x1[2] ≥ 0∧[1 + (-1)bso_151] ≥ 0)
For Pair
COND_7513_1_MAIN_INVOKEMETHOD1(
TRUE,
21908_0_createTree_Return,
x1) →
7513_1_MAIN_INVOKEMETHOD(
7513_0_createTree_InvokeMethod,
+(
x1,
-1)) the following chains were created:
- We consider the chain COND_7513_1_MAIN_INVOKEMETHOD1(TRUE, 21908_0_createTree_Return, x1[3]) → 7513_1_MAIN_INVOKEMETHOD(7513_0_createTree_InvokeMethod, +(x1[3], -1)) which results in the following constraint:
(20) (COND_7513_1_MAIN_INVOKEMETHOD1(TRUE, 21908_0_createTree_Return, x1[3])≥NonInfC∧COND_7513_1_MAIN_INVOKEMETHOD1(TRUE, 21908_0_createTree_Return, x1[3])≥7513_1_MAIN_INVOKEMETHOD(7513_0_createTree_InvokeMethod, +(x1[3], -1))∧(UIncreasing(7513_1_MAIN_INVOKEMETHOD(7513_0_createTree_InvokeMethod, +(x1[3], -1))), ≥))
We simplified constraint (20) using rule (POLY_CONSTRAINTS) which results in the following new constraint:
(21) ((UIncreasing(7513_1_MAIN_INVOKEMETHOD(7513_0_createTree_InvokeMethod, +(x1[3], -1))), ≥)∧[1 + (-1)bso_153] ≥ 0)
We simplified constraint (21) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:
(22) ((UIncreasing(7513_1_MAIN_INVOKEMETHOD(7513_0_createTree_InvokeMethod, +(x1[3], -1))), ≥)∧[1 + (-1)bso_153] ≥ 0)
We simplified constraint (22) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:
(23) ((UIncreasing(7513_1_MAIN_INVOKEMETHOD(7513_0_createTree_InvokeMethod, +(x1[3], -1))), ≥)∧[1 + (-1)bso_153] ≥ 0)
We simplified constraint (23) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:
(24) ((UIncreasing(7513_1_MAIN_INVOKEMETHOD(7513_0_createTree_InvokeMethod, +(x1[3], -1))), ≥)∧0 = 0∧[1 + (-1)bso_153] ≥ 0)
To summarize, we get the following constraints P
≥ for the following pairs.
- 7513_1_MAIN_INVOKEMETHOD(1974_0_createTree_Return, x2) → COND_7513_1_MAIN_INVOKEMETHOD(&&(>(x2, 0), <(0, +(x2, -1))), 1974_0_createTree_Return, x2)
- ([1] + x2[0] ≥ 0∧x2[0] ≥ 0 ⇒ (UIncreasing(COND_7513_1_MAIN_INVOKEMETHOD(&&(>(x2[0], 0), <(0, +(x2[0], -1))), 1974_0_createTree_Return, x2[0])), ≥)∧[(-1)Bound*bni_146 + (4)bni_146] + [(2)bni_146]x2[0] ≥ 0∧[(-1)bso_147] ≥ 0)
- COND_7513_1_MAIN_INVOKEMETHOD(TRUE, 1974_0_createTree_Return, x2) → 7513_1_MAIN_INVOKEMETHOD(7513_0_createTree_InvokeMethod, +(x2, -1))
- ((UIncreasing(7513_1_MAIN_INVOKEMETHOD(7513_0_createTree_InvokeMethod, +(x2[1], -1))), ≥)∧0 = 0∧[2 + (-1)bso_149] ≥ 0)
- 7513_1_MAIN_INVOKEMETHOD(21908_0_createTree_Return, x1) → COND_7513_1_MAIN_INVOKEMETHOD1(&&(>(x1, 0), <(0, +(x1, -1))), 21908_0_createTree_Return, x1)
- ([1] + x1[2] ≥ 0∧x1[2] ≥ 0 ⇒ (UIncreasing(COND_7513_1_MAIN_INVOKEMETHOD1(&&(>(x1[2], 0), <(0, +(x1[2], -1))), 21908_0_createTree_Return, x1[2])), ≥)∧[(-1)Bound*bni_150 + (4)bni_150] + [(2)bni_150]x1[2] ≥ 0∧[1 + (-1)bso_151] ≥ 0)
- COND_7513_1_MAIN_INVOKEMETHOD1(TRUE, 21908_0_createTree_Return, x1) → 7513_1_MAIN_INVOKEMETHOD(7513_0_createTree_InvokeMethod, +(x1, -1))
- ((UIncreasing(7513_1_MAIN_INVOKEMETHOD(7513_0_createTree_InvokeMethod, +(x1[3], -1))), ≥)∧0 = 0∧[1 + (-1)bso_153] ≥ 0)
The constraints for P
> respective P
bound are constructed from P
≥ where we just replace every occurence of "t ≥ s" in P
≥ by "t > s" respective "t ≥
c". Here
c stands for the fresh constant used for P
bound.
Using the following integer polynomial ordering the resulting constraints can be solved
Polynomial interpretation over integers[POLO]:
POL(TRUE) = 0
POL(FALSE) = 0
POL(7513_0_createTree_InvokeMethod) = [-1]
POL(1569_1_createTree_InvokeMethod(x1)) = [-1] + [-1]x1
POL(1569_0_random_ArrayAccess(x1, x2)) = [-1] + [-1]x2 + [-1]x1
POL(java.lang.Object(x1)) = x1
POL(ARRAY(x1, x2)) = [-1] + [-1]x2 + [-1]x1
POL(1588_1_createTree_InvokeMethod(x1)) = [-1] + [-1]x1
POL(1588_0_random_ArrayAccess(x1, x2)) = [-1] + [-1]x2 + [-1]x1
POL(1589_1_createTree_InvokeMethod(x1)) = [-1] + [-1]x1
POL(1589_0_random_ArrayAccess(x1, x2)) = [-1] + [-1]x2 + [-1]x1
POL(7513_1_main_InvokeMethod(x1, x2)) = [-1]
POL(2085_0_createTree_InvokeMethod) = [-1]
POL(7727_0_main_InvokeMethod(x1, x2)) = [-1]
POL(2140_0_createTree_InvokeMethod) = [-1]
POL(2274_0_createTree_InvokeMethod) = [-1]
POL(2971_0_createTree_InvokeMethod(x1)) = x1
POL(24353_0_createTree_InvokeMethod(x1)) = [-1]
POL(24697_0_createTree_InvokeMethod(x1)) = [-1]
POL(25508_0_createTree_InvokeMethod(x1)) = x1
POL(25572_0_createTree_InvokeMethod(x1)) = x1
POL(25664_0_createTree_InvokeMethod(x1)) = x1
POL(25727_0_createTree_InvokeMethod(x1)) = x1
POL(25886_0_createTree_InvokeMethod(x1)) = x1
POL(26060_0_createTree_InvokeMethod(x1)) = x1
POL(26213_0_createTree_InvokeMethod(x1)) = x1
POL(26307_0_createTree_InvokeMethod(x1)) = x1
POL(26395_0_createTree_InvokeMethod(x1)) = x1
POL(Cond_1589_1_createTree_InvokeMethod(x1, x2)) = [-1] + [-1]x2
POL(>=(x1, x2)) = [-1]
POL(Cond_1588_1_createTree_InvokeMethod(x1, x2)) = [-1] + [-1]x2
POL(&&(x1, x2)) = [-1]
POL(0) = 0
POL(<(x1, x2)) = [-1]
POL(1663_1_createTree_InvokeMethod(x1)) = [-1] + [-1]x1
POL(1663_0_random_IntArithmetic(x1)) = x1
POL(Cond_1663_1_createTree_InvokeMethod(x1, x2)) = [-1] + [-1]x2
POL(Cond_1663_1_createTree_InvokeMethod1(x1, x2)) = [-1] + [-1]x2
POL(1902_0_createTree_NE(x1)) = [-1] + [-1]x1
POL(1974_0_createTree_Return) = [-1]
POL(Cond_1902_0_createTree_NE(x1, x2)) = [-1] + [-1]x2
POL(!(x1)) = [-1]
POL(=(x1, x2)) = [-1]
POL(1969_1_createTree_InvokeMethod(x1, x2)) = [-1] + [-1]x2
POL(2798_0_createNode_InvokeMethod) = [-1]
POL(2813_0_createNode_InvokeMethod) = [-1]
POL(2933_0_createNode_InvokeMethod) = [-1]
POL(2619_0_createNode_Return) = [-1]
POL(21887_0_createTree_LE(x1)) = [-1] + [-1]x1
POL(21908_0_createTree_Return) = [-1]
POL(Cond_21887_0_createTree_LE(x1, x2)) = [-1] + [-1]x2
POL(>(x1, x2)) = [-1]
POL(21978_1_createTree_InvokeMethod(x1)) = [-1] + [-1]x1
POL(21978_0_random_ArrayAccess(x1, x2)) = [-1] + [-1]x2 + [-1]x1
POL(Cond_21887_0_createTree_LE1(x1, x2)) = [-1] + [-1]x2
POL(22017_1_createTree_InvokeMethod(x1, x2)) = [-1] + [-1]x1 + [-1]x2
POL(22017_0_random_ArrayAccess(x1, x2)) = [-1] + [-1]x2 + [-1]x1
POL(Cond_21887_0_createTree_LE2(x1, x2)) = [-1] + [-1]x2
POL(22030_1_createTree_InvokeMethod(x1)) = [-1] + [-1]x1
POL(22030_0_random_ArrayAccess(x1, x2)) = [-1] + [-1]x2 + [-1]x1
POL(Cond_22030_1_createTree_InvokeMethod(x1, x2)) = [-1] + [-1]x2
POL(Cond_22017_1_createTree_InvokeMethod(x1, x2, x3)) = [-1] + [-1]x3 + [-1]x2
POL(22181_1_createTree_InvokeMethod(x1, x2)) = [-1] + [-1]x1 + [-1]x2
POL(22181_0_random_IntArithmetic(x1)) = x1
POL(Cond_22181_1_createTree_InvokeMethod(x1, x2, x3)) = [-1] + [-1]x3 + [-1]x2
POL(Cond_22181_1_createTree_InvokeMethod1(x1, x2, x3)) = [-1] + [-1]x3 + [-1]x2
POL(23403_0_createTree_LE(x1, x2)) = [-1] + [-1]x2 + [-1]x1
POL(Cond_23403_0_createTree_LE(x1, x2, x3)) = [-1] + [-1]x3 + [-1]x2
POL(25321_1_createTree_InvokeMethod(x1, x2)) = [-1] + [-1]x2
POL(25328_0_createNode_InvokeMethod) = [-1]
POL(Cond_25321_1_createTree_InvokeMethod(x1, x2, x3)) = [-1] + [-1]x3
POL(+(x1, x2)) = x1 + x2
POL(-1) = [-1]
POL(Cond_1902_0_createTree_NE1(x1, x2)) = [-1] + [-1]x2
POL(2282_1_createNode_InvokeMethod(x1)) = [-1] + [-1]x1
POL(2282_0_random_ArrayAccess(x1, x2)) = [-1] + [-1]x2 + [-1]x1
POL(Cond_23403_0_createTree_LE1(x1, x2, x3)) = [-1] + [-1]x3 + [-1]x2
POL(Cond_2282_1_createNode_InvokeMethod(x1, x2)) = [-1] + [-1]x2
POL(Cond_2282_1_createNode_InvokeMethod1(x1, x2)) = [-1] + [-1]x2
POL(1) = [1]
POL(2373_1_createNode_InvokeMethod(x1)) = [-1] + [-1]x1
POL(2373_0_random_IntArithmetic(x1)) = x1
POL(Cond_2373_1_createNode_InvokeMethod(x1, x2)) = [-1] + [-1]x2
POL(Cond_2373_1_createNode_InvokeMethod1(x1, x2)) = [-1] + [-1]x2
POL(Cond_2282_1_createNode_InvokeMethod2(x1, x2)) = [-1] + [-1]x2
POL(<=(x1, x2)) = [-1]
POL(2773_0_createNode_InvokeMethod) = [-1]
POL(Cond_23403_0_createTree_LE2(x1, x2, x3)) = [-1] + [-1]x3 + [-1]x2
POL(Cond_23403_0_createTree_LE3(x1, x2, x3)) = [-1] + [-1]x3 + [-1]x2
POL(25676_0_createNode_InvokeMethod) = [-1]
POL(Cond_23403_0_createTree_LE5(x1, x2, x3)) = [-1] + [-1]x3 + [-1]x2
POL(25668_0_createTree_Store(x1)) = [-1] + [-1]x1
POL(Cond_23403_0_createTree_LE6(x1, x2, x3)) = [-1] + [-1]x3 + [-1]x2
POL(25294_0_createNode_InvokeMethod) = [-1]
POL(Cond_23403_0_createTree_LE9(x1, x2, x3)) = [-1] + [-1]x3 + [-1]x2
POL(25963_0_createNode_InvokeMethod) = [-1]
POL(25211_0_createNode_InvokeMethod) = [-1]
POL(Cond_23403_0_createTree_LE11(x1, x2, x3)) = [-1] + [-1]x2
POL(25519_0_createNode_InvokeMethod) = [-1]
POL(25183_0_createNode_InvokeMethod) = [-1]
POL(25795_0_createNode_InvokeMethod) = [-1]
POL(Cond_21978_1_createTree_InvokeMethod(x1, x2)) = [-1] + [-1]x2
POL(Cond_1569_1_createTree_InvokeMethod(x1, x2)) = [-1] + [-1]x2
POL(Cond_25668_0_createTree_Store(x1, x2)) = [-1] + [-1]x2
POL(7513_1_MAIN_INVOKEMETHOD(x1, x2)) = [2]x2
POL(COND_7513_1_MAIN_INVOKEMETHOD(x1, x2, x3)) = [2]x3
POL(COND_7513_1_MAIN_INVOKEMETHOD1(x1, x2, x3)) = [-1] + [2]x3
The following pairs are in P
>:
COND_7513_1_MAIN_INVOKEMETHOD(TRUE, 1974_0_createTree_Return, x2[1]) → 7513_1_MAIN_INVOKEMETHOD(7513_0_createTree_InvokeMethod, +(x2[1], -1))
7513_1_MAIN_INVOKEMETHOD(21908_0_createTree_Return, x1[2]) → COND_7513_1_MAIN_INVOKEMETHOD1(&&(>(x1[2], 0), <(0, +(x1[2], -1))), 21908_0_createTree_Return, x1[2])
COND_7513_1_MAIN_INVOKEMETHOD1(TRUE, 21908_0_createTree_Return, x1[3]) → 7513_1_MAIN_INVOKEMETHOD(7513_0_createTree_InvokeMethod, +(x1[3], -1))
The following pairs are in P
bound:
7513_1_MAIN_INVOKEMETHOD(1974_0_createTree_Return, x2[0]) → COND_7513_1_MAIN_INVOKEMETHOD(&&(>(x2[0], 0), <(0, +(x2[0], -1))), 1974_0_createTree_Return, x2[0])
7513_1_MAIN_INVOKEMETHOD(21908_0_createTree_Return, x1[2]) → COND_7513_1_MAIN_INVOKEMETHOD1(&&(>(x1[2], 0), <(0, +(x1[2], -1))), 21908_0_createTree_Return, x1[2])
The following pairs are in P
≥:
7513_1_MAIN_INVOKEMETHOD(1974_0_createTree_Return, x2[0]) → COND_7513_1_MAIN_INVOKEMETHOD(&&(>(x2[0], 0), <(0, +(x2[0], -1))), 1974_0_createTree_Return, x2[0])
There are no usable rules.
(27) Complex Obligation (AND)
(28) Obligation:
IDP problem:
The following function symbols are pre-defined:
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
| ~ | Bwxor: (Integer, Integer) -> Integer |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
The following domains are used:
Integer, Boolean
The ITRS R consists of the following rules:
7513_0_createTree_InvokeMethod →
1569_1_createTree_InvokeMethod(
1569_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
7513_0_createTree_InvokeMethod →
1588_1_createTree_InvokeMethod(
1588_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
7513_0_createTree_InvokeMethod →
1589_1_createTree_InvokeMethod(
1589_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
7513_1_main_InvokeMethod(
2085_0_createTree_InvokeMethod,
x1) →
7727_0_main_InvokeMethod(
x0,
x1)
7513_1_main_InvokeMethod(
2140_0_createTree_InvokeMethod,
x1) →
7727_0_main_InvokeMethod(
x0,
x1)
7513_1_main_InvokeMethod(
2274_0_createTree_InvokeMethod,
x1) →
7727_0_main_InvokeMethod(
x0,
x1)
7513_1_main_InvokeMethod(
2971_0_createTree_InvokeMethod(
x1),
x3) →
7727_0_main_InvokeMethod(
x2,
x3)
7513_1_main_InvokeMethod(
24353_0_createTree_InvokeMethod(
x0),
x3) →
7727_0_main_InvokeMethod(
x2,
x3)
7513_1_main_InvokeMethod(
24697_0_createTree_InvokeMethod(
x0),
x3) →
7727_0_main_InvokeMethod(
x2,
x3)
7513_1_main_InvokeMethod(
25508_0_createTree_InvokeMethod(
x1),
x3) →
7727_0_main_InvokeMethod(
x2,
x3)
7513_1_main_InvokeMethod(
25572_0_createTree_InvokeMethod(
x1),
x3) →
7727_0_main_InvokeMethod(
x2,
x3)
7513_1_main_InvokeMethod(
25664_0_createTree_InvokeMethod(
x1),
x3) →
7727_0_main_InvokeMethod(
x2,
x3)
7513_1_main_InvokeMethod(
25727_0_createTree_InvokeMethod(
x1),
x3) →
7727_0_main_InvokeMethod(
x2,
x3)
7513_1_main_InvokeMethod(
25886_0_createTree_InvokeMethod(
x1),
x3) →
7727_0_main_InvokeMethod(
x2,
x3)
7513_1_main_InvokeMethod(
26060_0_createTree_InvokeMethod(
x1),
x3) →
7727_0_main_InvokeMethod(
x2,
x3)
7513_1_main_InvokeMethod(
26213_0_createTree_InvokeMethod(
x1),
x3) →
7727_0_main_InvokeMethod(
x2,
x3)
7513_1_main_InvokeMethod(
26307_0_createTree_InvokeMethod(
x1),
x3) →
7727_0_main_InvokeMethod(
x2,
x3)
7513_1_main_InvokeMethod(
26395_0_createTree_InvokeMethod(
x0),
x3) →
7727_0_main_InvokeMethod(
x2,
x3)
1589_1_createTree_InvokeMethod(
1589_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2)) →
Cond_1589_1_createTree_InvokeMethod(
x2 >= x0,
1589_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
Cond_1589_1_createTree_InvokeMethod(
TRUE,
1589_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2)) →
2140_0_createTree_InvokeMethod1588_1_createTree_InvokeMethod(
1588_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2)) →
Cond_1588_1_createTree_InvokeMethod(
x2 >= 0 && x2 < x0,
1588_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
Cond_1588_1_createTree_InvokeMethod(
TRUE,
1588_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2)) →
1663_1_createTree_InvokeMethod(
1663_0_random_IntArithmetic(
x4))
1663_1_createTree_InvokeMethod(
1663_0_random_IntArithmetic(
x0)) →
Cond_1663_1_createTree_InvokeMethod(
x0 >= 0,
1663_0_random_IntArithmetic(
x0))
Cond_1663_1_createTree_InvokeMethod(
TRUE,
1663_0_random_IntArithmetic(
x0)) →
2274_0_createTree_InvokeMethod1663_1_createTree_InvokeMethod(
1663_0_random_IntArithmetic(
x1)) →
Cond_1663_1_createTree_InvokeMethod1(
x1 >= 0,
1663_0_random_IntArithmetic(
x1))
Cond_1663_1_createTree_InvokeMethod1(
TRUE,
1663_0_random_IntArithmetic(
x1)) →
1902_0_createTree_NE(
x3)
1902_0_createTree_NE(
0) →
1974_0_createTree_Return1902_0_createTree_NE(
x0) →
Cond_1902_0_createTree_NE(
!(
x0 = 0),
x0)
Cond_1902_0_createTree_NE(
TRUE,
x0) →
1969_1_createTree_InvokeMethod(
2798_0_createNode_InvokeMethod,
x0)
1969_1_createTree_InvokeMethod(
2813_0_createNode_InvokeMethod,
x0) →
2971_0_createTree_InvokeMethod(
x0)
1969_1_createTree_InvokeMethod(
2933_0_createNode_InvokeMethod,
x0) →
2971_0_createTree_InvokeMethod(
x0)
1969_1_createTree_InvokeMethod(
2619_0_createNode_Return,
x0) →
21887_0_createTree_LE(
x0)
21887_0_createTree_LE(
0) →
21908_0_createTree_Return21887_0_createTree_LE(
x0) →
Cond_21887_0_createTree_LE(
x0 > 0,
x0)
Cond_21887_0_createTree_LE(
TRUE,
x0) →
21978_1_createTree_InvokeMethod(
21978_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x2,
x3)),
x4))
21887_0_createTree_LE(
x0) →
Cond_21887_0_createTree_LE1(
x0 > 0,
x0)
Cond_21887_0_createTree_LE1(
TRUE,
x0) →
22017_1_createTree_InvokeMethod(
22017_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x2,
x3)),
x4),
x0)
21887_0_createTree_LE(
x0) →
Cond_21887_0_createTree_LE2(
x0 > 0,
x0)
Cond_21887_0_createTree_LE2(
TRUE,
x0) →
22030_1_createTree_InvokeMethod(
22030_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x2,
x3)),
x4))
22030_1_createTree_InvokeMethod(
22030_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2)) →
Cond_22030_1_createTree_InvokeMethod(
x2 >= x0,
22030_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
Cond_22030_1_createTree_InvokeMethod(
TRUE,
22030_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2)) →
24697_0_createTree_InvokeMethod(
x3)
22017_1_createTree_InvokeMethod(
22017_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2),
x3) →
Cond_22017_1_createTree_InvokeMethod(
x2 >= 0 && x2 < x0,
22017_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2),
x3)
Cond_22017_1_createTree_InvokeMethod(
TRUE,
22017_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2),
x3) →
22181_1_createTree_InvokeMethod(
22181_0_random_IntArithmetic(
x6),
x3)
22181_1_createTree_InvokeMethod(
22181_0_random_IntArithmetic(
x0),
x2) →
Cond_22181_1_createTree_InvokeMethod(
x0 >= 0,
22181_0_random_IntArithmetic(
x0),
x2)
Cond_22181_1_createTree_InvokeMethod(
TRUE,
22181_0_random_IntArithmetic(
x0),
x2) →
26395_0_createTree_InvokeMethod(
x2)
22181_1_createTree_InvokeMethod(
22181_0_random_IntArithmetic(
x1),
x3) →
Cond_22181_1_createTree_InvokeMethod1(
x1 >= 0,
22181_0_random_IntArithmetic(
x1),
x3)
Cond_22181_1_createTree_InvokeMethod1(
TRUE,
22181_0_random_IntArithmetic(
x1),
x3) →
23403_0_createTree_LE(
x3,
x5)
23403_0_createTree_LE(
x0,
x1) →
Cond_23403_0_createTree_LE(
x1 > 0,
x0,
x1)
Cond_23403_0_createTree_LE(
TRUE,
x0,
x1) →
25321_1_createTree_InvokeMethod(
25328_0_createNode_InvokeMethod,
x0)
25321_1_createTree_InvokeMethod(
2813_0_createNode_InvokeMethod,
x0) →
25727_0_createTree_InvokeMethod(
x0)
25321_1_createTree_InvokeMethod(
2933_0_createNode_InvokeMethod,
x0) →
25727_0_createTree_InvokeMethod(
x0)
25321_1_createTree_InvokeMethod(
2619_0_createNode_Return,
x0) →
Cond_25321_1_createTree_InvokeMethod(
x0 > 0,
2619_0_createNode_Return,
x0)
Cond_25321_1_createTree_InvokeMethod(
TRUE,
2619_0_createNode_Return,
x0) →
21887_0_createTree_LE(
x0 + -1)
1902_0_createTree_NE(
x0) →
Cond_1902_0_createTree_NE1(
!(
x0 = 0),
x0)
Cond_1902_0_createTree_NE1(
TRUE,
x0) →
1969_1_createTree_InvokeMethod(
2282_1_createNode_InvokeMethod(
2282_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x1,
x2)),
x3)),
x0)
23403_0_createTree_LE(
x0,
x1) →
Cond_23403_0_createTree_LE1(
x1 > 0,
x0,
x1)
Cond_23403_0_createTree_LE1(
TRUE,
x0,
x1) →
25321_1_createTree_InvokeMethod(
2282_1_createNode_InvokeMethod(
2282_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x2,
x3)),
x4)),
x0)
2282_1_createNode_InvokeMethod(
2282_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2)) →
Cond_2282_1_createNode_InvokeMethod(
x2 >= x0,
2282_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
Cond_2282_1_createNode_InvokeMethod(
TRUE,
2282_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2)) →
2813_0_createNode_InvokeMethod2282_1_createNode_InvokeMethod(
2282_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2)) →
Cond_2282_1_createNode_InvokeMethod1(
x2 >= 1 && x2 < x0,
2282_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
Cond_2282_1_createNode_InvokeMethod1(
TRUE,
2282_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2)) →
2373_1_createNode_InvokeMethod(
2373_0_random_IntArithmetic(
x4))
2373_1_createNode_InvokeMethod(
2373_0_random_IntArithmetic(
x0)) →
Cond_2373_1_createNode_InvokeMethod(
x0 > 0,
2373_0_random_IntArithmetic(
x0))
Cond_2373_1_createNode_InvokeMethod(
TRUE,
2373_0_random_IntArithmetic(
x0)) →
2933_0_createNode_InvokeMethod2373_1_createNode_InvokeMethod(
2373_0_random_IntArithmetic(
x1)) →
Cond_2373_1_createNode_InvokeMethod1(
x1 > 0,
2373_0_random_IntArithmetic(
x1))
Cond_2373_1_createNode_InvokeMethod1(
TRUE,
2373_0_random_IntArithmetic(
x1)) →
2619_0_createNode_Return2282_1_createNode_InvokeMethod(
2282_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2)) →
Cond_2282_1_createNode_InvokeMethod2(
x2 <= -1,
2282_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
Cond_2282_1_createNode_InvokeMethod2(
TRUE,
2282_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2)) →
2773_0_createNode_InvokeMethod23403_0_createTree_LE(
x0,
x1) →
Cond_23403_0_createTree_LE2(
x1 > 0 && x0 > 0,
x0,
x1)
Cond_23403_0_createTree_LE2(
TRUE,
x0,
x1) →
21887_0_createTree_LE(
x0 + -1)
23403_0_createTree_LE(
x0,
x1) →
Cond_23403_0_createTree_LE3(
x1 > 0,
x0,
x1)
Cond_23403_0_createTree_LE3(
TRUE,
x0,
x1) →
25321_1_createTree_InvokeMethod(
25676_0_createNode_InvokeMethod,
x0)
25321_1_createTree_InvokeMethod(
2813_0_createNode_InvokeMethod,
x0) →
26060_0_createTree_InvokeMethod(
x0)
25321_1_createTree_InvokeMethod(
2933_0_createNode_InvokeMethod,
x0) →
26060_0_createTree_InvokeMethod(
x0)
23403_0_createTree_LE(
x0,
x1) →
Cond_23403_0_createTree_LE5(
x1 > 0,
x0,
x1)
Cond_23403_0_createTree_LE5(
TRUE,
x0,
x1) →
25668_0_createTree_Store(
x0)
23403_0_createTree_LE(
x0,
x1) →
Cond_23403_0_createTree_LE6(
x1 > 0,
x0,
x1)
Cond_23403_0_createTree_LE6(
TRUE,
x0,
x1) →
25321_1_createTree_InvokeMethod(
25294_0_createNode_InvokeMethod,
x0)
25321_1_createTree_InvokeMethod(
2813_0_createNode_InvokeMethod,
x0) →
25664_0_createTree_InvokeMethod(
x0)
25321_1_createTree_InvokeMethod(
2933_0_createNode_InvokeMethod,
x0) →
25664_0_createTree_InvokeMethod(
x0)
23403_0_createTree_LE(
x0,
x1) →
Cond_23403_0_createTree_LE9(
x1 > 0,
x0,
x1)
Cond_23403_0_createTree_LE9(
TRUE,
x0,
x1) →
25321_1_createTree_InvokeMethod(
25963_0_createNode_InvokeMethod,
x0)
25321_1_createTree_InvokeMethod(
2813_0_createNode_InvokeMethod,
x0) →
26307_0_createTree_InvokeMethod(
x0)
25321_1_createTree_InvokeMethod(
2933_0_createNode_InvokeMethod,
x0) →
26307_0_createTree_InvokeMethod(
x0)
23403_0_createTree_LE(
x0,
0) →
25321_1_createTree_InvokeMethod(
25211_0_createNode_InvokeMethod,
x0)
23403_0_createTree_LE(
x0,
0) →
25321_1_createTree_InvokeMethod(
2282_1_createNode_InvokeMethod(
2282_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x2,
x3)),
x4)),
x0)
25321_1_createTree_InvokeMethod(
2813_0_createNode_InvokeMethod,
x0) →
25572_0_createTree_InvokeMethod(
x0)
25321_1_createTree_InvokeMethod(
2933_0_createNode_InvokeMethod,
x0) →
25572_0_createTree_InvokeMethod(
x0)
23403_0_createTree_LE(
x0,
0) →
Cond_23403_0_createTree_LE11(
x0 > 0,
x0,
0)
Cond_23403_0_createTree_LE11(
TRUE,
x0,
0) →
21887_0_createTree_LE(
x0 + -1)
23403_0_createTree_LE(
x0,
0) →
25321_1_createTree_InvokeMethod(
25519_0_createNode_InvokeMethod,
x0)
25321_1_createTree_InvokeMethod(
2813_0_createNode_InvokeMethod,
x0) →
25886_0_createTree_InvokeMethod(
x0)
25321_1_createTree_InvokeMethod(
2933_0_createNode_InvokeMethod,
x0) →
25886_0_createTree_InvokeMethod(
x0)
23403_0_createTree_LE(
x0,
0) →
25668_0_createTree_Store(
x0)
23403_0_createTree_LE(
x0,
0) →
25321_1_createTree_InvokeMethod(
25183_0_createNode_InvokeMethod,
x0)
25321_1_createTree_InvokeMethod(
2813_0_createNode_InvokeMethod,
x0) →
25508_0_createTree_InvokeMethod(
x0)
25321_1_createTree_InvokeMethod(
2933_0_createNode_InvokeMethod,
x0) →
25508_0_createTree_InvokeMethod(
x0)
23403_0_createTree_LE(
x0,
0) →
25321_1_createTree_InvokeMethod(
25795_0_createNode_InvokeMethod,
x0)
25321_1_createTree_InvokeMethod(
2813_0_createNode_InvokeMethod,
x0) →
26213_0_createTree_InvokeMethod(
x0)
25321_1_createTree_InvokeMethod(
2933_0_createNode_InvokeMethod,
x0) →
26213_0_createTree_InvokeMethod(
x0)
21978_1_createTree_InvokeMethod(
21978_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2)) →
Cond_21978_1_createTree_InvokeMethod(
x2 <= -1,
21978_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
Cond_21978_1_createTree_InvokeMethod(
TRUE,
21978_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2)) →
24353_0_createTree_InvokeMethod(
x3)
1569_1_createTree_InvokeMethod(
1569_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2)) →
Cond_1569_1_createTree_InvokeMethod(
x2 <= -1,
1569_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
Cond_1569_1_createTree_InvokeMethod(
TRUE,
1569_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2)) →
2085_0_createTree_InvokeMethod25668_0_createTree_Store(
x0) →
Cond_25668_0_createTree_Store(
x0 > 0,
x0)
Cond_25668_0_createTree_Store(
TRUE,
x0) →
21887_0_createTree_LE(
x0 + -1)
The integer pair graph contains the following rules and edges:
(0):
7513_1_MAIN_INVOKEMETHOD(
1974_0_createTree_Return,
x2[0]) →
COND_7513_1_MAIN_INVOKEMETHOD(
x2[0] > 0 && 0 < x2[0] + -1,
1974_0_createTree_Return,
x2[0])
The set Q consists of the following terms:
7513_0_createTree_InvokeMethod7513_1_main_InvokeMethod(
2085_0_createTree_InvokeMethod,
x0)
7513_1_main_InvokeMethod(
2140_0_createTree_InvokeMethod,
x0)
7513_1_main_InvokeMethod(
2274_0_createTree_InvokeMethod,
x0)
7513_1_main_InvokeMethod(
2971_0_createTree_InvokeMethod(
x0),
x1)
7513_1_main_InvokeMethod(
24353_0_createTree_InvokeMethod(
x0),
x1)
7513_1_main_InvokeMethod(
24697_0_createTree_InvokeMethod(
x0),
x1)
7513_1_main_InvokeMethod(
25508_0_createTree_InvokeMethod(
x0),
x1)
7513_1_main_InvokeMethod(
25572_0_createTree_InvokeMethod(
x0),
x1)
7513_1_main_InvokeMethod(
25664_0_createTree_InvokeMethod(
x0),
x1)
7513_1_main_InvokeMethod(
25727_0_createTree_InvokeMethod(
x0),
x1)
7513_1_main_InvokeMethod(
25886_0_createTree_InvokeMethod(
x0),
x1)
7513_1_main_InvokeMethod(
26060_0_createTree_InvokeMethod(
x0),
x1)
7513_1_main_InvokeMethod(
26213_0_createTree_InvokeMethod(
x0),
x1)
7513_1_main_InvokeMethod(
26307_0_createTree_InvokeMethod(
x0),
x1)
7513_1_main_InvokeMethod(
26395_0_createTree_InvokeMethod(
x0),
x1)
1589_1_createTree_InvokeMethod(
1589_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
Cond_1589_1_createTree_InvokeMethod(
TRUE,
1589_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
1588_1_createTree_InvokeMethod(
1588_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
Cond_1588_1_createTree_InvokeMethod(
TRUE,
1588_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
1663_1_createTree_InvokeMethod(
1663_0_random_IntArithmetic(
x0))
Cond_1663_1_createTree_InvokeMethod(
TRUE,
1663_0_random_IntArithmetic(
x0))
Cond_1663_1_createTree_InvokeMethod1(
TRUE,
1663_0_random_IntArithmetic(
x0))
1902_0_createTree_NE(
x0)
Cond_1902_0_createTree_NE(
TRUE,
x0)
1969_1_createTree_InvokeMethod(
2813_0_createNode_InvokeMethod,
x0)
1969_1_createTree_InvokeMethod(
2933_0_createNode_InvokeMethod,
x0)
1969_1_createTree_InvokeMethod(
2619_0_createNode_Return,
x0)
21887_0_createTree_LE(
x0)
Cond_21887_0_createTree_LE(
TRUE,
x0)
Cond_21887_0_createTree_LE1(
TRUE,
x0)
Cond_21887_0_createTree_LE2(
TRUE,
x0)
22030_1_createTree_InvokeMethod(
22030_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
Cond_22030_1_createTree_InvokeMethod(
TRUE,
22030_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
22017_1_createTree_InvokeMethod(
22017_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2),
x3)
Cond_22017_1_createTree_InvokeMethod(
TRUE,
22017_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2),
x3)
22181_1_createTree_InvokeMethod(
22181_0_random_IntArithmetic(
x0),
x1)
Cond_22181_1_createTree_InvokeMethod(
TRUE,
22181_0_random_IntArithmetic(
x0),
x1)
Cond_22181_1_createTree_InvokeMethod1(
TRUE,
22181_0_random_IntArithmetic(
x0),
x1)
23403_0_createTree_LE(
x0,
x1)
Cond_23403_0_createTree_LE(
TRUE,
x0,
x1)
25321_1_createTree_InvokeMethod(
2813_0_createNode_InvokeMethod,
x0)
25321_1_createTree_InvokeMethod(
2933_0_createNode_InvokeMethod,
x0)
25321_1_createTree_InvokeMethod(
2619_0_createNode_Return,
x0)
Cond_25321_1_createTree_InvokeMethod(
TRUE,
2619_0_createNode_Return,
x0)
Cond_1902_0_createTree_NE1(
TRUE,
x0)
Cond_23403_0_createTree_LE1(
TRUE,
x0,
x1)
2282_1_createNode_InvokeMethod(
2282_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
Cond_2282_1_createNode_InvokeMethod(
TRUE,
2282_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
Cond_2282_1_createNode_InvokeMethod1(
TRUE,
2282_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
2373_1_createNode_InvokeMethod(
2373_0_random_IntArithmetic(
x0))
Cond_2373_1_createNode_InvokeMethod(
TRUE,
2373_0_random_IntArithmetic(
x0))
Cond_2373_1_createNode_InvokeMethod1(
TRUE,
2373_0_random_IntArithmetic(
x0))
Cond_2282_1_createNode_InvokeMethod2(
TRUE,
2282_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
Cond_23403_0_createTree_LE2(
TRUE,
x0,
x1)
Cond_23403_0_createTree_LE3(
TRUE,
x0,
x1)
Cond_23403_0_createTree_LE5(
TRUE,
x0,
x1)
Cond_23403_0_createTree_LE6(
TRUE,
x0,
x1)
Cond_23403_0_createTree_LE9(
TRUE,
x0,
x1)
Cond_23403_0_createTree_LE11(
TRUE,
x0,
0)
21978_1_createTree_InvokeMethod(
21978_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
Cond_21978_1_createTree_InvokeMethod(
TRUE,
21978_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
1569_1_createTree_InvokeMethod(
1569_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
Cond_1569_1_createTree_InvokeMethod(
TRUE,
1569_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
25668_0_createTree_Store(
x0)
Cond_25668_0_createTree_Store(
TRUE,
x0)
(29) IDependencyGraphProof (EQUIVALENT transformation)
The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 1 less node.
(30) TRUE
(31) Obligation:
IDP problem:
The following function symbols are pre-defined:
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
| ~ | Bwxor: (Integer, Integer) -> Integer |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
The following domains are used:
Integer, Boolean
The ITRS R consists of the following rules:
7513_0_createTree_InvokeMethod →
1569_1_createTree_InvokeMethod(
1569_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
7513_0_createTree_InvokeMethod →
1588_1_createTree_InvokeMethod(
1588_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
7513_0_createTree_InvokeMethod →
1589_1_createTree_InvokeMethod(
1589_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
7513_1_main_InvokeMethod(
2085_0_createTree_InvokeMethod,
x1) →
7727_0_main_InvokeMethod(
x0,
x1)
7513_1_main_InvokeMethod(
2140_0_createTree_InvokeMethod,
x1) →
7727_0_main_InvokeMethod(
x0,
x1)
7513_1_main_InvokeMethod(
2274_0_createTree_InvokeMethod,
x1) →
7727_0_main_InvokeMethod(
x0,
x1)
7513_1_main_InvokeMethod(
2971_0_createTree_InvokeMethod(
x1),
x3) →
7727_0_main_InvokeMethod(
x2,
x3)
7513_1_main_InvokeMethod(
24353_0_createTree_InvokeMethod(
x0),
x3) →
7727_0_main_InvokeMethod(
x2,
x3)
7513_1_main_InvokeMethod(
24697_0_createTree_InvokeMethod(
x0),
x3) →
7727_0_main_InvokeMethod(
x2,
x3)
7513_1_main_InvokeMethod(
25508_0_createTree_InvokeMethod(
x1),
x3) →
7727_0_main_InvokeMethod(
x2,
x3)
7513_1_main_InvokeMethod(
25572_0_createTree_InvokeMethod(
x1),
x3) →
7727_0_main_InvokeMethod(
x2,
x3)
7513_1_main_InvokeMethod(
25664_0_createTree_InvokeMethod(
x1),
x3) →
7727_0_main_InvokeMethod(
x2,
x3)
7513_1_main_InvokeMethod(
25727_0_createTree_InvokeMethod(
x1),
x3) →
7727_0_main_InvokeMethod(
x2,
x3)
7513_1_main_InvokeMethod(
25886_0_createTree_InvokeMethod(
x1),
x3) →
7727_0_main_InvokeMethod(
x2,
x3)
7513_1_main_InvokeMethod(
26060_0_createTree_InvokeMethod(
x1),
x3) →
7727_0_main_InvokeMethod(
x2,
x3)
7513_1_main_InvokeMethod(
26213_0_createTree_InvokeMethod(
x1),
x3) →
7727_0_main_InvokeMethod(
x2,
x3)
7513_1_main_InvokeMethod(
26307_0_createTree_InvokeMethod(
x1),
x3) →
7727_0_main_InvokeMethod(
x2,
x3)
7513_1_main_InvokeMethod(
26395_0_createTree_InvokeMethod(
x0),
x3) →
7727_0_main_InvokeMethod(
x2,
x3)
1589_1_createTree_InvokeMethod(
1589_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2)) →
Cond_1589_1_createTree_InvokeMethod(
x2 >= x0,
1589_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
Cond_1589_1_createTree_InvokeMethod(
TRUE,
1589_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2)) →
2140_0_createTree_InvokeMethod1588_1_createTree_InvokeMethod(
1588_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2)) →
Cond_1588_1_createTree_InvokeMethod(
x2 >= 0 && x2 < x0,
1588_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
Cond_1588_1_createTree_InvokeMethod(
TRUE,
1588_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2)) →
1663_1_createTree_InvokeMethod(
1663_0_random_IntArithmetic(
x4))
1663_1_createTree_InvokeMethod(
1663_0_random_IntArithmetic(
x0)) →
Cond_1663_1_createTree_InvokeMethod(
x0 >= 0,
1663_0_random_IntArithmetic(
x0))
Cond_1663_1_createTree_InvokeMethod(
TRUE,
1663_0_random_IntArithmetic(
x0)) →
2274_0_createTree_InvokeMethod1663_1_createTree_InvokeMethod(
1663_0_random_IntArithmetic(
x1)) →
Cond_1663_1_createTree_InvokeMethod1(
x1 >= 0,
1663_0_random_IntArithmetic(
x1))
Cond_1663_1_createTree_InvokeMethod1(
TRUE,
1663_0_random_IntArithmetic(
x1)) →
1902_0_createTree_NE(
x3)
1902_0_createTree_NE(
0) →
1974_0_createTree_Return1902_0_createTree_NE(
x0) →
Cond_1902_0_createTree_NE(
!(
x0 = 0),
x0)
Cond_1902_0_createTree_NE(
TRUE,
x0) →
1969_1_createTree_InvokeMethod(
2798_0_createNode_InvokeMethod,
x0)
1969_1_createTree_InvokeMethod(
2813_0_createNode_InvokeMethod,
x0) →
2971_0_createTree_InvokeMethod(
x0)
1969_1_createTree_InvokeMethod(
2933_0_createNode_InvokeMethod,
x0) →
2971_0_createTree_InvokeMethod(
x0)
1969_1_createTree_InvokeMethod(
2619_0_createNode_Return,
x0) →
21887_0_createTree_LE(
x0)
21887_0_createTree_LE(
0) →
21908_0_createTree_Return21887_0_createTree_LE(
x0) →
Cond_21887_0_createTree_LE(
x0 > 0,
x0)
Cond_21887_0_createTree_LE(
TRUE,
x0) →
21978_1_createTree_InvokeMethod(
21978_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x2,
x3)),
x4))
21887_0_createTree_LE(
x0) →
Cond_21887_0_createTree_LE1(
x0 > 0,
x0)
Cond_21887_0_createTree_LE1(
TRUE,
x0) →
22017_1_createTree_InvokeMethod(
22017_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x2,
x3)),
x4),
x0)
21887_0_createTree_LE(
x0) →
Cond_21887_0_createTree_LE2(
x0 > 0,
x0)
Cond_21887_0_createTree_LE2(
TRUE,
x0) →
22030_1_createTree_InvokeMethod(
22030_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x2,
x3)),
x4))
22030_1_createTree_InvokeMethod(
22030_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2)) →
Cond_22030_1_createTree_InvokeMethod(
x2 >= x0,
22030_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
Cond_22030_1_createTree_InvokeMethod(
TRUE,
22030_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2)) →
24697_0_createTree_InvokeMethod(
x3)
22017_1_createTree_InvokeMethod(
22017_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2),
x3) →
Cond_22017_1_createTree_InvokeMethod(
x2 >= 0 && x2 < x0,
22017_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2),
x3)
Cond_22017_1_createTree_InvokeMethod(
TRUE,
22017_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2),
x3) →
22181_1_createTree_InvokeMethod(
22181_0_random_IntArithmetic(
x6),
x3)
22181_1_createTree_InvokeMethod(
22181_0_random_IntArithmetic(
x0),
x2) →
Cond_22181_1_createTree_InvokeMethod(
x0 >= 0,
22181_0_random_IntArithmetic(
x0),
x2)
Cond_22181_1_createTree_InvokeMethod(
TRUE,
22181_0_random_IntArithmetic(
x0),
x2) →
26395_0_createTree_InvokeMethod(
x2)
22181_1_createTree_InvokeMethod(
22181_0_random_IntArithmetic(
x1),
x3) →
Cond_22181_1_createTree_InvokeMethod1(
x1 >= 0,
22181_0_random_IntArithmetic(
x1),
x3)
Cond_22181_1_createTree_InvokeMethod1(
TRUE,
22181_0_random_IntArithmetic(
x1),
x3) →
23403_0_createTree_LE(
x3,
x5)
23403_0_createTree_LE(
x0,
x1) →
Cond_23403_0_createTree_LE(
x1 > 0,
x0,
x1)
Cond_23403_0_createTree_LE(
TRUE,
x0,
x1) →
25321_1_createTree_InvokeMethod(
25328_0_createNode_InvokeMethod,
x0)
25321_1_createTree_InvokeMethod(
2813_0_createNode_InvokeMethod,
x0) →
25727_0_createTree_InvokeMethod(
x0)
25321_1_createTree_InvokeMethod(
2933_0_createNode_InvokeMethod,
x0) →
25727_0_createTree_InvokeMethod(
x0)
25321_1_createTree_InvokeMethod(
2619_0_createNode_Return,
x0) →
Cond_25321_1_createTree_InvokeMethod(
x0 > 0,
2619_0_createNode_Return,
x0)
Cond_25321_1_createTree_InvokeMethod(
TRUE,
2619_0_createNode_Return,
x0) →
21887_0_createTree_LE(
x0 + -1)
1902_0_createTree_NE(
x0) →
Cond_1902_0_createTree_NE1(
!(
x0 = 0),
x0)
Cond_1902_0_createTree_NE1(
TRUE,
x0) →
1969_1_createTree_InvokeMethod(
2282_1_createNode_InvokeMethod(
2282_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x1,
x2)),
x3)),
x0)
23403_0_createTree_LE(
x0,
x1) →
Cond_23403_0_createTree_LE1(
x1 > 0,
x0,
x1)
Cond_23403_0_createTree_LE1(
TRUE,
x0,
x1) →
25321_1_createTree_InvokeMethod(
2282_1_createNode_InvokeMethod(
2282_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x2,
x3)),
x4)),
x0)
2282_1_createNode_InvokeMethod(
2282_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2)) →
Cond_2282_1_createNode_InvokeMethod(
x2 >= x0,
2282_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
Cond_2282_1_createNode_InvokeMethod(
TRUE,
2282_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2)) →
2813_0_createNode_InvokeMethod2282_1_createNode_InvokeMethod(
2282_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2)) →
Cond_2282_1_createNode_InvokeMethod1(
x2 >= 1 && x2 < x0,
2282_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
Cond_2282_1_createNode_InvokeMethod1(
TRUE,
2282_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2)) →
2373_1_createNode_InvokeMethod(
2373_0_random_IntArithmetic(
x4))
2373_1_createNode_InvokeMethod(
2373_0_random_IntArithmetic(
x0)) →
Cond_2373_1_createNode_InvokeMethod(
x0 > 0,
2373_0_random_IntArithmetic(
x0))
Cond_2373_1_createNode_InvokeMethod(
TRUE,
2373_0_random_IntArithmetic(
x0)) →
2933_0_createNode_InvokeMethod2373_1_createNode_InvokeMethod(
2373_0_random_IntArithmetic(
x1)) →
Cond_2373_1_createNode_InvokeMethod1(
x1 > 0,
2373_0_random_IntArithmetic(
x1))
Cond_2373_1_createNode_InvokeMethod1(
TRUE,
2373_0_random_IntArithmetic(
x1)) →
2619_0_createNode_Return2282_1_createNode_InvokeMethod(
2282_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2)) →
Cond_2282_1_createNode_InvokeMethod2(
x2 <= -1,
2282_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
Cond_2282_1_createNode_InvokeMethod2(
TRUE,
2282_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2)) →
2773_0_createNode_InvokeMethod23403_0_createTree_LE(
x0,
x1) →
Cond_23403_0_createTree_LE2(
x1 > 0 && x0 > 0,
x0,
x1)
Cond_23403_0_createTree_LE2(
TRUE,
x0,
x1) →
21887_0_createTree_LE(
x0 + -1)
23403_0_createTree_LE(
x0,
x1) →
Cond_23403_0_createTree_LE3(
x1 > 0,
x0,
x1)
Cond_23403_0_createTree_LE3(
TRUE,
x0,
x1) →
25321_1_createTree_InvokeMethod(
25676_0_createNode_InvokeMethod,
x0)
25321_1_createTree_InvokeMethod(
2813_0_createNode_InvokeMethod,
x0) →
26060_0_createTree_InvokeMethod(
x0)
25321_1_createTree_InvokeMethod(
2933_0_createNode_InvokeMethod,
x0) →
26060_0_createTree_InvokeMethod(
x0)
23403_0_createTree_LE(
x0,
x1) →
Cond_23403_0_createTree_LE5(
x1 > 0,
x0,
x1)
Cond_23403_0_createTree_LE5(
TRUE,
x0,
x1) →
25668_0_createTree_Store(
x0)
23403_0_createTree_LE(
x0,
x1) →
Cond_23403_0_createTree_LE6(
x1 > 0,
x0,
x1)
Cond_23403_0_createTree_LE6(
TRUE,
x0,
x1) →
25321_1_createTree_InvokeMethod(
25294_0_createNode_InvokeMethod,
x0)
25321_1_createTree_InvokeMethod(
2813_0_createNode_InvokeMethod,
x0) →
25664_0_createTree_InvokeMethod(
x0)
25321_1_createTree_InvokeMethod(
2933_0_createNode_InvokeMethod,
x0) →
25664_0_createTree_InvokeMethod(
x0)
23403_0_createTree_LE(
x0,
x1) →
Cond_23403_0_createTree_LE9(
x1 > 0,
x0,
x1)
Cond_23403_0_createTree_LE9(
TRUE,
x0,
x1) →
25321_1_createTree_InvokeMethod(
25963_0_createNode_InvokeMethod,
x0)
25321_1_createTree_InvokeMethod(
2813_0_createNode_InvokeMethod,
x0) →
26307_0_createTree_InvokeMethod(
x0)
25321_1_createTree_InvokeMethod(
2933_0_createNode_InvokeMethod,
x0) →
26307_0_createTree_InvokeMethod(
x0)
23403_0_createTree_LE(
x0,
0) →
25321_1_createTree_InvokeMethod(
25211_0_createNode_InvokeMethod,
x0)
23403_0_createTree_LE(
x0,
0) →
25321_1_createTree_InvokeMethod(
2282_1_createNode_InvokeMethod(
2282_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x2,
x3)),
x4)),
x0)
25321_1_createTree_InvokeMethod(
2813_0_createNode_InvokeMethod,
x0) →
25572_0_createTree_InvokeMethod(
x0)
25321_1_createTree_InvokeMethod(
2933_0_createNode_InvokeMethod,
x0) →
25572_0_createTree_InvokeMethod(
x0)
23403_0_createTree_LE(
x0,
0) →
Cond_23403_0_createTree_LE11(
x0 > 0,
x0,
0)
Cond_23403_0_createTree_LE11(
TRUE,
x0,
0) →
21887_0_createTree_LE(
x0 + -1)
23403_0_createTree_LE(
x0,
0) →
25321_1_createTree_InvokeMethod(
25519_0_createNode_InvokeMethod,
x0)
25321_1_createTree_InvokeMethod(
2813_0_createNode_InvokeMethod,
x0) →
25886_0_createTree_InvokeMethod(
x0)
25321_1_createTree_InvokeMethod(
2933_0_createNode_InvokeMethod,
x0) →
25886_0_createTree_InvokeMethod(
x0)
23403_0_createTree_LE(
x0,
0) →
25668_0_createTree_Store(
x0)
23403_0_createTree_LE(
x0,
0) →
25321_1_createTree_InvokeMethod(
25183_0_createNode_InvokeMethod,
x0)
25321_1_createTree_InvokeMethod(
2813_0_createNode_InvokeMethod,
x0) →
25508_0_createTree_InvokeMethod(
x0)
25321_1_createTree_InvokeMethod(
2933_0_createNode_InvokeMethod,
x0) →
25508_0_createTree_InvokeMethod(
x0)
23403_0_createTree_LE(
x0,
0) →
25321_1_createTree_InvokeMethod(
25795_0_createNode_InvokeMethod,
x0)
25321_1_createTree_InvokeMethod(
2813_0_createNode_InvokeMethod,
x0) →
26213_0_createTree_InvokeMethod(
x0)
25321_1_createTree_InvokeMethod(
2933_0_createNode_InvokeMethod,
x0) →
26213_0_createTree_InvokeMethod(
x0)
21978_1_createTree_InvokeMethod(
21978_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2)) →
Cond_21978_1_createTree_InvokeMethod(
x2 <= -1,
21978_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
Cond_21978_1_createTree_InvokeMethod(
TRUE,
21978_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2)) →
24353_0_createTree_InvokeMethod(
x3)
1569_1_createTree_InvokeMethod(
1569_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2)) →
Cond_1569_1_createTree_InvokeMethod(
x2 <= -1,
1569_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
Cond_1569_1_createTree_InvokeMethod(
TRUE,
1569_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2)) →
2085_0_createTree_InvokeMethod25668_0_createTree_Store(
x0) →
Cond_25668_0_createTree_Store(
x0 > 0,
x0)
Cond_25668_0_createTree_Store(
TRUE,
x0) →
21887_0_createTree_LE(
x0 + -1)
The integer pair graph contains the following rules and edges:
(1):
COND_7513_1_MAIN_INVOKEMETHOD(
TRUE,
1974_0_createTree_Return,
x2[1]) →
7513_1_MAIN_INVOKEMETHOD(
7513_0_createTree_InvokeMethod,
x2[1] + -1)
(3):
COND_7513_1_MAIN_INVOKEMETHOD1(
TRUE,
21908_0_createTree_Return,
x1[3]) →
7513_1_MAIN_INVOKEMETHOD(
7513_0_createTree_InvokeMethod,
x1[3] + -1)
The set Q consists of the following terms:
7513_0_createTree_InvokeMethod7513_1_main_InvokeMethod(
2085_0_createTree_InvokeMethod,
x0)
7513_1_main_InvokeMethod(
2140_0_createTree_InvokeMethod,
x0)
7513_1_main_InvokeMethod(
2274_0_createTree_InvokeMethod,
x0)
7513_1_main_InvokeMethod(
2971_0_createTree_InvokeMethod(
x0),
x1)
7513_1_main_InvokeMethod(
24353_0_createTree_InvokeMethod(
x0),
x1)
7513_1_main_InvokeMethod(
24697_0_createTree_InvokeMethod(
x0),
x1)
7513_1_main_InvokeMethod(
25508_0_createTree_InvokeMethod(
x0),
x1)
7513_1_main_InvokeMethod(
25572_0_createTree_InvokeMethod(
x0),
x1)
7513_1_main_InvokeMethod(
25664_0_createTree_InvokeMethod(
x0),
x1)
7513_1_main_InvokeMethod(
25727_0_createTree_InvokeMethod(
x0),
x1)
7513_1_main_InvokeMethod(
25886_0_createTree_InvokeMethod(
x0),
x1)
7513_1_main_InvokeMethod(
26060_0_createTree_InvokeMethod(
x0),
x1)
7513_1_main_InvokeMethod(
26213_0_createTree_InvokeMethod(
x0),
x1)
7513_1_main_InvokeMethod(
26307_0_createTree_InvokeMethod(
x0),
x1)
7513_1_main_InvokeMethod(
26395_0_createTree_InvokeMethod(
x0),
x1)
1589_1_createTree_InvokeMethod(
1589_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
Cond_1589_1_createTree_InvokeMethod(
TRUE,
1589_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
1588_1_createTree_InvokeMethod(
1588_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
Cond_1588_1_createTree_InvokeMethod(
TRUE,
1588_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
1663_1_createTree_InvokeMethod(
1663_0_random_IntArithmetic(
x0))
Cond_1663_1_createTree_InvokeMethod(
TRUE,
1663_0_random_IntArithmetic(
x0))
Cond_1663_1_createTree_InvokeMethod1(
TRUE,
1663_0_random_IntArithmetic(
x0))
1902_0_createTree_NE(
x0)
Cond_1902_0_createTree_NE(
TRUE,
x0)
1969_1_createTree_InvokeMethod(
2813_0_createNode_InvokeMethod,
x0)
1969_1_createTree_InvokeMethod(
2933_0_createNode_InvokeMethod,
x0)
1969_1_createTree_InvokeMethod(
2619_0_createNode_Return,
x0)
21887_0_createTree_LE(
x0)
Cond_21887_0_createTree_LE(
TRUE,
x0)
Cond_21887_0_createTree_LE1(
TRUE,
x0)
Cond_21887_0_createTree_LE2(
TRUE,
x0)
22030_1_createTree_InvokeMethod(
22030_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
Cond_22030_1_createTree_InvokeMethod(
TRUE,
22030_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
22017_1_createTree_InvokeMethod(
22017_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2),
x3)
Cond_22017_1_createTree_InvokeMethod(
TRUE,
22017_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2),
x3)
22181_1_createTree_InvokeMethod(
22181_0_random_IntArithmetic(
x0),
x1)
Cond_22181_1_createTree_InvokeMethod(
TRUE,
22181_0_random_IntArithmetic(
x0),
x1)
Cond_22181_1_createTree_InvokeMethod1(
TRUE,
22181_0_random_IntArithmetic(
x0),
x1)
23403_0_createTree_LE(
x0,
x1)
Cond_23403_0_createTree_LE(
TRUE,
x0,
x1)
25321_1_createTree_InvokeMethod(
2813_0_createNode_InvokeMethod,
x0)
25321_1_createTree_InvokeMethod(
2933_0_createNode_InvokeMethod,
x0)
25321_1_createTree_InvokeMethod(
2619_0_createNode_Return,
x0)
Cond_25321_1_createTree_InvokeMethod(
TRUE,
2619_0_createNode_Return,
x0)
Cond_1902_0_createTree_NE1(
TRUE,
x0)
Cond_23403_0_createTree_LE1(
TRUE,
x0,
x1)
2282_1_createNode_InvokeMethod(
2282_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
Cond_2282_1_createNode_InvokeMethod(
TRUE,
2282_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
Cond_2282_1_createNode_InvokeMethod1(
TRUE,
2282_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
2373_1_createNode_InvokeMethod(
2373_0_random_IntArithmetic(
x0))
Cond_2373_1_createNode_InvokeMethod(
TRUE,
2373_0_random_IntArithmetic(
x0))
Cond_2373_1_createNode_InvokeMethod1(
TRUE,
2373_0_random_IntArithmetic(
x0))
Cond_2282_1_createNode_InvokeMethod2(
TRUE,
2282_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
Cond_23403_0_createTree_LE2(
TRUE,
x0,
x1)
Cond_23403_0_createTree_LE3(
TRUE,
x0,
x1)
Cond_23403_0_createTree_LE5(
TRUE,
x0,
x1)
Cond_23403_0_createTree_LE6(
TRUE,
x0,
x1)
Cond_23403_0_createTree_LE9(
TRUE,
x0,
x1)
Cond_23403_0_createTree_LE11(
TRUE,
x0,
0)
21978_1_createTree_InvokeMethod(
21978_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
Cond_21978_1_createTree_InvokeMethod(
TRUE,
21978_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
1569_1_createTree_InvokeMethod(
1569_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
Cond_1569_1_createTree_InvokeMethod(
TRUE,
1569_0_random_ArrayAccess(
java.lang.Object(
ARRAY(
x0,
x1)),
x2))
25668_0_createTree_Store(
x0)
Cond_25668_0_createTree_Store(
TRUE,
x0)
(32) IDependencyGraphProof (EQUIVALENT transformation)
The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 2 less nodes.
(33) TRUE